У меня проблема с проектом 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.
Вы должны изменить расширение файла для всех файлов, которые импортируют OpenCV в .mm
. OpenCV - это C++ API, а изменение расширения файла на .mm
меняет язык, используемый в файле, на Objective- C++, что позволяет смешивать C++ и Objective-C.
.mm
?