0

我在Visual Studio 2012 IDE中使用OpenCV 2.4.5与Visual C++项目。我的项目工作正常在DEBUG模式,但在RELEASE模式,我得到以下编译错误:Visual Studio 2012 - 发布模式下的OpenCV链接错误

error LNK1181: cannot open input file 'opencv_core245.lib'

我再装的OpenCV和设置环境变量如下:

  1. Created the following System Variable: OPENCV_BUILD with the path C:\opencv\build\
  2. Added the following to the Path variable: C:\opencv\build\x86\vc11\bin

然后,在Visual Studio 2012中,我为调试模式创建了如下新属性表:

Clicked View >>Property Manager Right clicked Debug >>Add New Project Property Sheet

我然后编辑的属性表如下:

C/C++ >> General >> Additional Include Directories: $(OPENCV_BUILD)\include;%(AdditionalIncludeDirectories)

Linker >> General >> Additional Library Directories: $(OPENCV_BUILD)\x86\vc11\lib;%(AdditionalLibraryDirectories)

Linker >> Input >> Additional Dependencies: opencv_core245d.lib;opencv_imgproc245d.lib;opencv_highgui245d.lib;opencv_ml245d.lib;opencv_video245d.lib;opencv_features2d245d.lib;opencv_calib3d245d.lib;opencv_objdetect245d.lib;opencv_contrib245d.lib;opencv_legacy245d.lib;opencv_flann245d.lib;%(AdditionalDependencies)

我遵循相同的过程,以创建用于释放模式中的新属性表(I也跟着用于编辑项目属性的相同程序),但对于 链接器>>输入>>其他依赖关系我省略了每个.lib文件名中的“d”(例如opencv_core245.lib而不是opencv_core245d.lib)。

在我的代码,我通常包括文件内容如下: #include <opencv2\highgui\highgui.hpp>

正如我前面提到,一切工作在调试模式很好,但在释放模式,我得到以下编译错误:

error LNK1181: cannot open input file 'opencv_core245.lib'

我在这个论坛上看过很多其他的帖子,但似乎没有任何工作。有人可以帮助我,我真的很绝望。

回答

0

可以先试着去查看 - >属性页 - >配置属性 - >链接器 - >输入

在额外的依赖添加“opencv_core245.lib”

如果它不工作,尝试将所有包含在“链接器,输入”中的.dll或.libs的目录添加到“链接器,常规,附加库目录”中。

让我知道它是怎么回事。干杯! (:

+0

我试着做你刚才所说的,但它仍然无法正常工作。我是否需要包含指向任何.dll文件的链接? – COBOL

0

好的,我以前也有这个问题,其实我以为我的上面的答案可能是解决方案,它不是很容易找到,但我设法寻找帮助我解决这个问题的教程视频。问题我在过去

这里的视频:http://www.youtube.com/watch?v=cgo0UitHfp8

希望这会有所帮助,再一次让我知道如何去(:

0

当我开始使用opencv.in visual studio时,如果您的计算机体系结构是属性管理器,则存在debug | win32 debug | x64发行版| win32和发行版| x64,我曾经遇到同样的问题x64,并且您已使用x64设置属性表中的属性,则应确保将属性表添加到版本| x64而不是发布| win32。

如果您的机器架构是x86,并且您已使用x86设置了属性表中的属性,则应确保propertysheet已添加到发行版| win32而不是发行版x64。希望有帮助