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