如何在visual studio 2013中构建opencv并提升它们? / MTD? / MDD?

时间:2015-02-12 18:11:20

标签: opencv visual-studio-2012 boost microsoft-runtime-library

我在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。 我该怎么办?

1 个答案:

答案 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