Как собрать 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