opencv2/OpenCV выполняет.файл hpp не найден в Xcode
Я построил openCV, чтобы получить opencv2.рамки. Я добавил Это в свой проект Xcode iOS, перейдя в "этапы сборки - >связать двоичный файл с библиотеками", а затем попытался включить " opencv2/opencv.ГЭС" в моем проекте. Я получаю ошибку " opencv2 / opencv.ГЭС" не найдено. Но файл существует в рамках. Я попытался найти решение в интернете, но ничего не сработало для меня.
файл, в который я пытаюсь включить его, является .мм файл. Я сделал" компиляцию источников как " objective-C++. Любая помощь будет быть здорово.
9 ответов
то, что работало для меня было очень просто:
*обратите внимание на разницу между проектами IOS и OS X
ДЛЯ IOS:
поместите загрузку opencv (для 3.0.0 это просто перетаскивание) в папку Xcode конкретного проекта. Затем установите Пути Поиска Кадров to $(PROJECT_DIR). Путь поиска кадров находится под Параметры Построения. Никаких других путей устанавливать не нужно.
и наконец, щелкните правой кнопкой мыши в навигаторе панель и нажмите " Добавить файлы..."для того, чтобы добавить в библиотеку OpenCV из папки проекта.
ДЛЯ OSX:
проверьте учебник Тима:https://www.youtube.com/watch?v=OVSPfUmNyOw
Я решаю проблему, добавляя к FRAMEWORK_SEARCH_PATHS абсолютный путь, у меня был фреймворк, который мне нужно было использовать:
вы должны использовать свой собственный путь, очевидно. ;-)
Мне потребовалось 4 часа, чтобы понять это. Вот как я заставил это работать. : Наряду с OpenCV framework добавьте следующие фреймворки на этапах сборки:
Ускорение, AssetsLibrary, AVFoundation , CoreGraphics , CoreImage , CoreMedia , CoreVideo , QuartzCore , Базе UIKit , Основа.
затем в .PCH-файл добавьте эти строки перед импортом UIKit и Foundation:
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
в моем случае символические ссылки на файлы заголовков были нарушены. Это было вызвано клонированием следующего замечательного примера проекта:
https://github.com/BloodAxe/OpenCV-Tutorial
в клонированном проекте файлы заголовков больше недоступны. После повторного импорта в opencv2.фреймворк с официального сайта загрузки OpenCV ios (OpenCV для iOS), заголовки были доступны снова. XCode должен выглядеть как следует:
ниже приведен скриншот проекта Xcode со сломанными заголовками. С разбитыми файлами заголовков проект xcode выглядит следующим образом:
я использовал openCV в своем проекте и реализовал его с помощью cocoapods
было невозможно, потому что версия библиотеки была слишком старой, поэтому я решил реализовать ее как статическую библиотеку. создайте папку в своем проекте и добавьте туда библиотеку, в настройках сборки найдите library
и framework
поиск пути и добавить ссылку на ваш openCV
папка. Он будет работать без ошибок. Также вы должны добавить файл заголовка openCV в prefixPatch
.
Более Подробная Инструкция 100% Работает:
1) Скачать рамки с официального сайта:OpenCV
2) в Каталог Проекта создать папку с именем: External_SDK
3) Поставить Opencv framework внутри этой папки и перетащите его в проект Xcode (папка) с целевым членством вашего приложения (не App_test).
4) в поиске проекта Xcode для yourPrefixHeaderFileName.pch
в верхней части файла добавьте следующие строки:
#ifdef __cplusplus
#import <opencv2/opencv.hpp>
#endif
5) после этого вы должны импорт или включить его в .h, зачем включать? потому что это библиотека CPP. Если вы хотите получить доступ к библиотеке с помощью import keywoard, чем вы должны сделать это:#import <EXAMPLE>
6) в настройках сборки найдите библиотека и рамки поиск пути и добавить ссылку на ваш EXTERNAL_SDK. Чтобы прочитать framework непосредственно из вашей папки. Найти и изменить ALWAYS_SEARCH_USER_PATHS = ДА и в HEADER_SEARCH_PATHS добавить $(по наследству) и / usr/include / FRAMEWORK_PATH
надеюсь, этот ответ поможет кому-то.
и лучшая практика-позвонить
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/core/core.hpp>
только заголовочные файлы.
убедитесь, что в Параметры Построения для цели у вас есть путь поиска фреймворка в Пути Поиска раздел установите правильный путь к тому, где ваша платформа находится в вашем каталоге. Вы можете сделать это, нажав справа от Framework Путь Поиска в пробелах щелкните знак + и добавьте $(PROJECT_DIR), затем нажмите + еще раз и добавьте $(унаследовано). Убедитесь, что фреймворк находится в главном каталоге вашего проекта. Этот сработало для меня, так как я столкнулся с той же проблемой.
надеюсь, что это помогает!
по моему опыту, нет необходимости добавлять так много других фреймворков. Вместо этого нужно только opencv2 и добавить "#import " в prefixheader.ПЧ
дело в том, что необходимо установить правильные пути поиска фреймворка, как указано выше, если папка opencv2 framework не находится в каталоге проекта.
Примечание: не устанавливайте неправильное местоположение в путях поиска фреймворка, поскольку есть два "YourProjectName". Установите 1-й(принадлежит целям), а не 2-й (принадлежит проекту). Я сделал ошибка.
вот мой ответ на это.
Окружающая Среда: XCode 8.1
страница загрузки:http://opencv.org/downloads.html. Выберите любую ссылку для iOS.
важный шаг: При загрузке opencv2.рамки, которые вы должны использовать".формат zip", а не ".формат "framework" после этого распакуйте его в opencv2.рамки. Это странно, но должно сработать. Между тем, вы должны переименовать его в opencv2.фреймворк, если распакованный нет.
просто перетащите фреймворк в свой проект iOS. Никаких настроек не требуется. Вы можете обратиться к этому для тестирования : www.youtube.com/watch?v=ywUBHqxwM5Q - ...
Я столкнулся с некоторыми проблемами, когда я пошел в Target-->Build Phases-->Link Binary с библиотеками. Когда я добавил opencv2.framework оттуда, мое приложение не запустится.
вместо этого я просто перетащил фреймворк под каталог "фреймворки" в XCode, и это сработало. Больше я ничего не менял.