我在Visual Studio 2012 IDE中使用OpenCV 2.4.5和Visual C ++项目。我的项目在 DEBUG 模式下正常工作,但在 RELEASE 模式下,我收到以下编译错误:
错误LNK1181:无法打开输入文件'opencv_core245.lib'
然后我安装了OpenCV并按如下方式设置环境变量:
- 使用路径C:\ opencv \ build \
创建以下系统变量: OPENCV_BUILD- 在路径变量中添加了以下内容:C:\ opencv \ build \ x86 \ vc11 \ bin
醇>
然后,在Visual Studio 2012中,我为调试模式创建了一个新的属性表,如下所示:
点击查看>> 物业经理 右键点击调试>> 添加新项目属性表
然后我按如下方式编辑了属性表:
C / C ++>>一般>>其他包含目录: $(OPENCV_BUILD)\ include;%(AdditionalIncludeDirectories)
链接器>>一般>>其他图书馆目录: $(OPENCV_BUILD)\ x86 \ vc11 \ lib;%(AdditionalLibraryDirectories)
链接器>>输入>>附加依赖 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)
我按照相同的步骤为发布模式创建了一个新的属性表(我也按照相同的步骤编辑项目属性),但是 链接器>>输入>>附加依赖我从每个.lib文件名中省略了“d”(例如opencv_core245.lib而不是opencv_core245d.lib)。
在我的代码中,我通常包含以下文件:
#include <opencv2\highgui\highgui.hpp>
正如我前面提到的,在DEBUG模式下一切正常,但在RELEASE模式下,我得到以下编译错误:
错误LNK1181:无法打开输入文件'opencv_core245.lib'
我在这个论坛上看过很多其他帖子,但似乎没什么用。有人可以帮助我,我真的很绝望。
答案 0 :(得分:0)
您可以先尝试转到View-&gt;属性页 - &gt;配置属性 - &gt;链接器 - &gt;输入
在其他依赖项下添加'opencv_core245.lib'
如果它不起作用,请尝试将所有目录添加到“链接器,输入”中包含的.dll或.libs到“链接器,常规,附加库目录”。
让我知道它是怎么回事。干杯! (:
答案 1 :(得分:0)
好的,我以前也经常遇到这个问题。我认为我的上述答案可能是解决方案。这并不容易找到,但我设法找到帮助我解决过去同样问题的教程视频。
以下是视频:http://www.youtube.com/watch?v=cgo0UitHfp8
希望这有帮助,再一次让我知道它是怎么回事(:
答案 2 :(得分:0)
我只是想在answers.opencv.org回答相关问题。
简而言之,在处理损坏的属性文件时,VS2012中可能存在错误。尝试重建属性文件。
答案 3 :(得分:0)
我遇到与http://answers.opencv.org/question/11766/release-mode-error-c1083-cannot-open-include-file/?answer=25829#post-id-25829中的评论中详细描述的问题完全相同的问题,并且没有任何建议的想法似乎有效。我认为设置发布模式的属性表存在一些问题,因此我没有创建新的属性表,而是从调试模式导入属性表,而是更改Linker-&gt;附加库以发布没有名称d的版本。我不明白为什么,但发布模式开始起作用。
答案 4 :(得分:0)
当我开始使用opencv.in visual studio时我常常遇到同样的问题,当你看看物业经理时,如果您的机器架构是x64,则有调试| win32 debug | x64 release | win32和release | x64并且您已使用x64在属性表中设置属性,您应确保将属性表添加到release | x64而不是release | win32。
如果您的计算机体系结构是x86并且您已使用x86在属性表中设置了属性,则应确保将propertiesysheet添加到release | win32而不是release | x64。希望有所帮助
答案 5 :(得分:0)
切换到发布模式后,您必须在(发布模式)项目属性中重新指定指向文件夹和库的所有链接。