我在Windows 7中使用boost库和openCV与Visual Studio 2013。
当我构建它们时,会出现许多错误。
opencv_core2410d.lib(alloc.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MTd_StaticDebug' doesn't match value 'MDd_DynamicDebug' in structure.obj
因此,我搜索此错误,并将项目属性的运行时库从 / 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
我之前构建过这样的boost库。
b2 toolset=msvc-12.0 variant=debug,release link=static threading=multi address-model=32 runtime-link=static
我正确构建运行时链接静态( / MTd )。 我不知道为什么我不能使用/ MTd选项编译boost。 我该怎么办?
答案 0 :(得分:0)
如果您使用的是CMake,可以将以下行添加到CMakeLists.txt
set(OpenCV_STATIC OFF)
所以它变成了
set(OpenCV_STATIC OFF)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
之后,您需要将OpenCV dll添加到Path。例如:
PATH_TO_OpenCV\build\x64\vc12\bin
之后它应该使用/ MDd。
在使用OpenCV和Qt时遇到了同样的问题,这有助于我入门: https://github.com/nickdademo/qt-opencv-multithreaded