我正在尝试按如下方式设置OpenCV 2.4:
C:\OpenCV240
。C:\OpenCV240\build\include
作为附加的包含目录。C:\OpenCV240\build\x86\vc10\staticlib
添加为其他库目录。当我编译我的“Hello World”程序(使用DLL时编译得很好)时,我收到很多错误消息:
1> msvcprtd.lib(MSVCP100D.dll):错误LNK2005:opencv_core240d中已定义“public:__thiscall std :: _ Container_base12 ::〜_Container_base12(void)”(?? 1_Container_base12 @std @@ QAE @ XZ)。 LIB(matrix.obj)
我做错了什么?
答案 0 :(得分:10)
听起来您需要在程序中指定与静态C运行时库的链接。
如果OpenCV链接到静态CRT并使用动态CRT,则会出现这些类型的重定义错误。
要更改此设置,请打开项目的属性,然后转到Configuration Properties -> C/C++ -> Code Generation
。
将Runtime Library
从Multi-threaded Debug DLL (/MDd)
更改为Multi-threaded Debug (/MTd)
。对其他配置执行相同操作,并在适当的位置使用非调试版本。