Как создать приложение XCode 6 для iOS, использующее OpenCV - ошибка __cplusplus не определена

0

У меня проблема с проектом xcode с OpenCV. Я выполнил инструкции на этой странице, чтобы создать инфраструктуру OpenCV для iOS. Затем я последовал этому руководству, чтобы создать тестовое приложение.

Но когда я пытаюсь построить, похоже, что __cplusplus не определяется с тех пор

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

не выполняется.

Кажется, я не хочу, чтобы мой проект собирал файлы c++, которые заставили бы это работать. Любые указатели будут высоко оценены.

Я удостоверился, что мои настройки сборки знают о файле.pch, и дважды проверил, что фреймворк был добавлен.

Я нахожусь в OS X Yosemite 10.10.1, Xcode 6.1.1, и тип приложения, которое я создал, был одноразовым приложением

Обновить

Похоже, что он компилирует блок __cplusplus. Я #define переменную в блоке #ifdef, и когда я NSLogged, она появилась. Кажется, он просто не может найти файл для

opencv2/highgui/cap_ios.h

Обновление 2

В дополнение к комментарию @NobodyNada ниже относительно изменения файла.m на.mm, мне также пришлось изменить оператор импорта из

opencv2/highgui/cap_ios.h -> opencv2/videoio/cap_ios.h.

Я нашел это из ответа @ToyHunter в этом сообщении SO.

  • 2
    Изменили ли вы свои расширения для файлов реализации, которым требуется OpenCV, на .mm ?
  • 0
    Только что попробовал, но все та же проблема.
Показать ещё 5 комментариев
Теги:
opencv
xcode

1 ответ

2
Лучший ответ

Вы должны изменить расширение файла для всех файлов, которые импортируют OpenCV в .mm. OpenCV - это C++ API, а изменение расширения файла на .mm меняет язык, используемый в файле, на Objective- C++, что позволяет смешивать C++ и Objective-C.

  • 2
    У меня также была похожая проблема, и мне пришлось объявить свойства в файле .mm вместо заголовка.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню