0

我在 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。我能怎么做?

4

1 回答 1

0

如果您使用的是 CMake,您可以将以下行添加到您的 CMakeLists.txt

set(OpenCV_STATIC OFF)

所以它变成了

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

之后,您需要将 OpenCV dll 添加到路径中。例如:

PATH_TO_OpenCV\build\x64\vc12\bin

之后,它应该可以使用 /MDd 工作。

我在 Qt 中使用 OpenCV 时遇到了同样的问题,这帮助我入门: https ://github.com/nickdademo/qt-opencv-multithreaded

于 2015-10-31T13:12:19.623 回答