2015-12-23 2 views
7

Я построил openCV, чтобы получить opencv2.framework. Я добавил это в свой проект iOS xcode, перейдя к «build phase-> Link Binary With Libraries», а затем попытался включить «opencv2/opencv.hpp» в свой проект. Я получаю сообщение об ошибке «opencv2/opencv.hpp» не найден. Но файл существует в рамках. Я попытался найти решение в Интернете, но ничего не сработало для меня.opencv2/opencv.hpp файл не найден в Xcode

Файл, в который я пытаюсь включить его, является файлом .mm. Я сделал «компилировать источники как» объектно-C++. Любая помощь будет большой.

+0

Просто попробуйте добавить include "opencv.hpp". работает? –

+0

Нет. Файл «opencv.hpp» не найден –

+1

некоторое время, когда мы перетаскиваем рамку, работаем в приложении, что может вызвать некоторые проблемы, поэтому сделайте одно. Сначала удалите ** opencv2.framework ** из вашего проекта. Теперь щелкните правой кнопкой мыши по проекту -> щелкните по добавлению файла в проект -> выберите opencv2.framework. –

ответ

4

Мне потребовалось 4 часа, чтобы понять это.Это, как я получил эту работу: Наряду с рамками OpenCV добавить следующие рамки на этапах сборки:

Ускорение, AssetsLibrary, AVFoundation , CoreGraphics , CoreImage , Coremedia , CoreVideo , QuartzCore , UIKit , Фонд.

Затем в файле .PCH добавить эти строки перед UIKit и Фонд импорта:

#ifdef __cplusplus 
#import <opencv2/opencv.hpp> 
#endif 
+0

Я пробовал это, но теперь я получаю ту же ошибку, и теперь, когда я удаляю вызов для импорта openCV, я получаю эту ошибку 'clang: ошибка: команда linker не удалась с кодом выхода 1 (используйте -v, чтобы увидеть вызов)' Вы создавая файл .pch, перейдя в файл new-> file -> .pch? – KellysOnTop23

+0

Как построить каркас opencv? Я загружал его со своего сайта, а затем перетаскивал загрузку в свой проект. это правильно? – KellysOnTop23

+0

Да, вы просто перетаскиваете файл «.framework» в свой проект xcode. Да, я создаю файл .pch, перейдя в файл new-> file -> .pch. После создания этого файла перейдите к созданию настроек и поискам «заголовка префикса». Установите префиксные префиксные заголовки в YES, а также добавьте имя своего .pch-файла в следующее поле. Создайте файл .pch в папке Поддерживающие файлы для удобства. –

1

Я использовал openCV в своем проекте, и его реализация с cocoapods была невозможна, потому что версия библиотеки была слишком старой, поэтому я решил реализовать ее как статическую библиотеку. создайте папку в своем проекте и добавьте туда библиотеку, в настройках построения найдите library и framework путь поиска и добавьте ссылку на свою openCV папку. Он будет работать без ошибок. Также вы должны добавить заголовочный файл openCV в prefixPatch.

More Detail Instruction 100% Works:

1) Скачать рамки с официального сайта: OpenCV

2) В Directory Project создать папку с именем: External_SDK

3) Поместите OpenCV рамки внутри этой папки и перетащить & отбросьте его в проекте Xcode (папка) с целевым членством в вашем приложении (не App_test).

4) В поисках Xcode проекта для yourPrefixHeaderFileName.pch и в верхней части файла добавить эти строки:

#ifdef __cplusplus 
#import <opencv2/opencv.hpp> 
#endif 

5) после этого вы должны импорта или включают его в .h файл , зачем включать? потому что это CPP-библиотека. Если вы хотите получить доступ к библиотеке с импортом keywoard, чем вы должны сделать так: поиск #import <EXAMPLE>

6) В параметрах сборки для библиотеки и рамки пути поиска и добавьте ссылку в папку EXTERNAL_SDK. Чтобы прочитать фреймворк непосредственно из вашей папки. Найти и изменить ALWAYS_SEARCH_USER_PATHS = YES и в HEADER_SEARCH_PATHS добавить $ (наследуется) и/USR/включать/FRAMEWORK_PATH

Надежда этот ответ поможет кому-то.

И лучшая практика называть

#include <opencv2/highgui/highgui.hpp> 
#include <opencv2/core/core.hpp> 

только файлы заголовков.

+0

могли бы вы объяснить, как сделать это более подробно, пожалуйста? @anirudh GP не единственный, кто сталкивается с этой проблемой – KellysOnTop23

+0

Я отредактирую свой ответ с более подробной информацией. – C0mrade

+0

Я сделал то, что вы сказали. Я получаю ту же ошибку в файле .pch. Файл "opencv2/opencv.hpp" не найден. –

6

То, что работало для меня был очень просто:

* Примечание разницы для IOS против OS X ПРОЕКТОВ

дЛЯ IOS:

Помещенный OpenCV скачать (для 3.0.0 это просто перетащить вид вещи) в определенную папку Xcode проекта. Затем установите пути поиска кадров на $ (PROJECT_DIR). Путь поиска кадров находится в разделе Параметры сборки. Никаких других путей не нужно устанавливать.

Наконец, щелкните правой кнопкой мыши в области навигатора и нажмите «Добавить файлы в ...», чтобы добавить в библиотеку opencv из папки проекта.

ДЛЯ OSX:

чек из учебника Тима: https://www.youtube.com/watch?v=OVSPfUmNyOw

+0

Это прекрасно работал в XCode 7 с OpenCV 3.1.1 (который странно приходит как «opencv2»). Сначала он пришел как $ (унаследованный) $ (PROJECT_DIR), когда я его изменил, поэтому я отредактировал $ (унаследованную) часть, чтобы мои «пути поиска Framework» соответствовали тому, что вы сказали. Все странные ошибки просто исчезли. – stephmur

+0

Последующие действия: ошибки вернулись. Так что это не сработало для меня. – stephmur

1

Убедитесь в Строительства Настройки для Target, вы имеете Framework пути поиска в Пути поиска секции, установленные на правильный путь где ваша инфраструктура находится в вашем каталоге. Вы можете сделать это, щелкнув справа от Ракурс поиска в пути в белом пространстве, щелкните знак + и добавьте $ (PROJECT_DIR), затем нажмите + еще раз и добавьте $ (унаследованный). Убедитесь, что структура находится в вашем основном каталоге для вашего проекта. Это сработало для меня, поскольку я столкнулся с той же проблемой.

Надеюсь, это поможет!

2

В моем случае были сломаны символические ссылки на файлы заголовков. Это было вызвано клонированием следующего большого примера проекта:

https://github.com/BloodAxe/OpenCV-Tutorial

В клонированном проекте, файлы заголовки не были достижимы больше. После рефинансирования opencv2.framework с официального сайта загрузки opensv ios (OpenCV for iOS) заголовки были доступны снова. XCode должен выглядеть следующим образом:

XCode opencv headers

Ниже приведен скриншот Xcode проекта с испорченными заголовками. С сломанных заголовочных файлов, проект Xcode выглядит следующим образом:

XCoe with broken opencv headers

0

Из моего опыта, не нужно добавлять так много других структур. Вместо этого нужно только opencv2 и добавить «#import» в prefixheader.pch

Дело в том, что ДОЛЖНО установить правильные пути поиска в Карте, как указано выше, если папка рамки opencv2 находится в каталоге проекта.

Примечание. Не устанавливайте неправильное расположение в пути поиска Framework, так как есть два «YourProjectName». Установите 1-й (относится к TARGETS), а не второй (принадлежит PROJECT). Я сделал ошибку.

5

я решить эту проблему, добавив к FRAMEWORK_SEARCH_PATHS абсолютный путь был у меня были рамки мне нужно использовать:

Edition of the Framework Search Path

Вы должны использовать свой собственный путь, очевидно. ;-)

0

Вот мой ответ для этого.

  1. Окружающая среда: XCode 8,1

  2. страница загрузки: http://opencv.org/downloads.html. Выберите любую ссылку для iOS.

  3. Важный шаг: при загрузке opencv2.framework вы должны использовать формат «.zip», а не формат «.framework», затем разархивируйте его в opencv2.framework. Это странно, но это должно сработать. Между тем, вы должны переименовать его в opencv2.framework, если распакованный - нет. enter image description here

  4. Просто перетащите рамку в проект iOS. Никаких настроек не требуется. Вы можете сослаться на это для тестирования: www.youtube.com/watch?v=ywUBHqxwM5Q.

0

Я столкнулся с некоторыми проблемами, когда отправился в Target -> Build Phases -> Link Binary With Libraries. Когда я добавил opencv2.framework, мое приложение не запустится.

Вместо этого я просто перетащил фреймворк под каталог «Рамки» в XCode, и это сработало. Я ничего не изменил.

Смежные вопросы