Невозможно скомпилировать OpenCV 2.4.5 с RTM RT 2013

Кому-нибудь удавалось компилировать openCV с RTM RT 2013? Я попытался и получил кучу "min не принадлежит пространству имен std" "max не принадлежит пространству имен std" в модуле IlmImf, а opencv_features2d не компилируется со следующей ошибкой:

opencv\modules\core\include\opencv2/core/core.hpp(4512): фатальная ошибка C1075: конец файла, найденный перед левой скобкой '{' at '......\modules\features2d\src\features2d_init.cpp(187) 'был сопоставлен

Поскольку последний пользовательский интерфейс CMake еще не поддерживает создание с 2013 года (по крайней мере, из пользовательского интерфейса и я нооб), мой процесс настраивал CMake на 2012 год, а затем открыл сгенерированное решение с 2013 года и обновил компилятор к vc12.

Мне удалось преодолеть ошибки min/max, добавив заголовок в файлы "оскорбительные", но я в тупике от полной ошибки, которую я опубликовал выше.

Спасибо

Update:

Принятый ответ обеспечивает то, что необходимо для компиляции OpenCV в 32-разрядной отладке и выпуске и 64-разрядной отладки, но теперь компилятор не может скомпилировать 64-разрядную версию из-за внутренней ошибки компилятора. Вероятно, это ошибка компилятора на этом этапе, но ответ по-прежнему решает многие проблемы.

Обновление 2: Таким образом, 64-битная проблема оказалась ошибкой в ​​авто-векторизации. Вот соответствующий обходной путь.

Привет, спасибо за большой отчет об ошибке. Я подтверждаю, что это ошибка в оптимизаторе компилятора. Мы исправим его в будущем выпуске.

Если вам понадобится обходной путь к исходному коду, отключите векторный объект в цикле внутри computeOrbDescriptor:

#pragma loop (no_vector)

for (int я = 0; я < dsize; ++ i)

{

   **...**

Это позволяет мне создавать orb.cpp и stardetector.cpp.

Если эта проблема является серьезной, вызывая критические ситуации в бизнесе или блокируя разработку или развертывание вашего продукта, перейдите в http://support.microsoft.com или вызовите 1- 800-MICROSOFT для помощи. Для клиентов Microsoft Premier обращайтесь к своему администратору, вашему техническому менеджеру или вашему представителю Microsoft Premier.

Я закрываю этот элемент MSConnect. Не стесняйтесь отвечать, если вам что-то еще нужно.

Спасибо,

Эрик Брумер - команда Microsoft Visual С++

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

Ответ 1

Мне удалось собрать OpenCV 2.4.6 на VS2013 RC, но изначально он имел те же ошибки, что и в вопросе. Я открыл решение VS и исправил все ошибки в два этапа:

1) Заменено (Ctrl + H)

#include \<string\> 

к

#include <algorithm>\n#include <string>

во всем решении (обязательно включите диалог RegExp взамен)

2) В "modules/opencv_features2d/Src/features2d_init.cpp" строка 184 изменилась на:

obj.info()->addParam(obj, "detector", (Ptr<Algorithm>&) obj.detector);

(найдите "GridAdaptedFeatureDetector" в этом файле для других версий OpenCV)