Неисправность компилятора платформы iOS OpenCV 2.4.3 при распознавании некоторых заголовков c ++

openCV 2.4.3 / Xcode 4.5.2 / mac osx 10.8.2

Я пытаюсь заставить openCV работать с iOS. Я пытаюсь использовать готовый 2.4.3 фреймворк из openCV.org. Однако я получаю следующие ошибки сборки проекта xcode, которые предполагают, что компилятор не знает, что он имеет дело с c ++, например

#include <list>       !'list' file not found

namespace cv          !unknown type name 'namespace'

Это касается только следующих заголовочных файлов:
"Opencv2 / несвободные / features2d.hpp"
"Opencv2 / несвободные / nonfree.hpp"
"Opencv2 / видео / video.hpp"

если я не включу эти три файла в opencv.hpp (или где-либо еще), я смогу скомпилировать и использовать openCV. Проблема в том, что мне нужны несвободные файлы, так как я экспериментирую с SURF - который недавно был перемещен в несвободные.

Это действительно двойной вопрос (извините ;-)

Как мне убедить компилятор, что это заголовки C ++?какие именно заголовки мне нужно использовать SURF?

Обновить

Я клонировал git-репозиторий openCV и создал из этого новый фреймворк. Этот подход ранее не работал, но сегодня я понял, что не использую текущую версию CMAKE. Я использовал CMAKE 2.8.2, и я не смог собрать opencv для ios. Текущая версия CMAKE 2.8.10 собирает его без каких-либо проблем (это наглядный урок подчинения документам, которые говорят, что требуется CMAKE min. V2.8.8).

Теперь, когда я добавляю эту текущую сборку фреймворка opencv в проект Xcode, я могу включитьfeatures2d а такженесвободные и строить плавно. Единственная проблема остается с одним заголовком:video/background_segm.hpp, который по-прежнему дает:

#include <list>       !'list' file not found

Если я прокомментируюэто я получаю сообщение об ошибке в следующей строке:

namespace cv          !unknown type name 'namespace'

Кажется очевидным, что компилятор не распознает это как заголовок C ++, даже если к нему добавлен суффикс.hpp.

Вopencv2/video/video.hpp если я удалю

#include "opencv2/video/background_segm.hpp"

Я могу построить сvideo.hpp также (хотя я предполагаю, что это было бы неприменимо на практике).

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

Ошибка OpenCV: функция / функция не реализована (OpenCV был создан без поддержки SURF)

Это срабатывает вlegacy/features2d.cpp:

   Ptr<Feature2D> surf = Algorithm::create<Feature2D>("Feature2D.SURF");
   if( surf.empty() )
        CV_Error(CV_StsNotImplemented, "OpenCV was built without SURF support");

Вопросы остаются ...

как мне убедить компилятор в том, чтоbackground_segm.hpp такое законный заголовок c ++?как включить поддержку SURF?

Ответы на вопрос(2)

Ваш ответ на вопрос