如何在Visual Studio中使用OpenCV 2.4静态库?

时间:2012-05-13 09:08:42

标签: c++ visual-studio-2010 opencv

我正在尝试按如下方式设置OpenCV 2.4:

  • 我已将预编译的软件包下载并解压缩到C:\OpenCV240
  • 在Visual Studio中,我添加了C:\OpenCV240\build\include作为附加的包含目录。
  • 此外,我已将C:\OpenCV240\build\x86\vc10\staticlib添加为其他库目录。
  • 我已将所有可用的.lib文件指定为其他依赖项。

当我编译我的“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)

我做错了什么?

1 个答案:

答案 0 :(得分:10)

听起来您需要在程序中指定与静态C运行时库的链接。

如果OpenCV链接到静态CRT并使用动态CRT,则会出现这些类型的重定义错误。

要更改此设置,请打开项目的属性,然后转到Configuration Properties -> C/C++ -> Code Generation

Runtime LibraryMulti-threaded Debug DLL (/MDd)更改为Multi-threaded Debug (/MTd)。对其他配置执行相同操作,并在适当的位置使用非调试版本。