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

Nik*_*iko 8 c++ opencv visual-studio-2010

我正在尝试按如下方式设置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.lib中已经定义了"public:__thiscall std :: _ Container_base12 ::〜_Container_base12(void)"(?? 1_Container_base12 @std @@ QAE @ XZ) .OBJ)

我究竟做错了什么?

Fra*_*ser 10

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

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

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

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