Как собрать opencv и повысить оба в Visual Studio 2013? /MTd? /MDd?

Я использую библиотеку Boost и OpenCV с Visual Studio 2013 в Windows 7.

Когда я их строю, таких ошибок много.

opencv_core2410d.lib(alloc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in structure.obj

Итак, я ищу эту ошибку и изменяю Runtime Library свойств проекта с /MDd на /MTd.

После этого эти ошибки исчезают. Но есть и другие подобные ошибки.

libboost_system-vc120-mt-gd-1_57.lib(error_code.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MDd_DynamicDebug' doesn't match value 'MTd_StaticDebug' in structure.obj

Я построил библиотеку наддува, как это раньше.

 b2 toolset=msvc-12.0 variant=debug,release link=static threading=multi address-model=32 runtime-link=static

Я строю runtime-link static (/MTd) правильно. Я не знаю, почему я не могу скомпилировать boost с параметром /MTd. Как я могу сделать?

1 ответ

Если вы используете CMake, вы можете добавить следующую строку в ваш CMakeLists.txt

set(OpenCV_STATIC OFF)

так становится

set(OpenCV_STATIC OFF)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

После этого вам нужно добавить ваши DLL-файлы OpenCV в Path. Например:

PATH_TO_OpenCV\build\x64\vc12\bin

После этого он должен работать с использованием /MDd.

У меня была та же проблема при использовании OpenCV с Qt, и это помогло мне начать работу: https://github.com/nickdademo/qt-opencv-multithreaded

Другие вопросы по тегам