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 абсолютный путь, у меня был фреймворк, который мне нужно было использовать:

Edition of the Framework Search Path

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


Мне потребовалось 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 opencv headers

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

XCoe with broken opencv headers


я использовал 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-й (принадлежит проекту). Я сделал ошибка.


вот мой ответ на это.

  1. Окружающая Среда: XCode 8.1

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

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

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


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

вместо этого я просто перетащил фреймворк под каталог "фреймворки" в XCode, и это сработало. Больше я ничего не менял.