#include <opencv2/opencv.hpp> 在 VS 2013 中不起作用
Posted
技术标签:
【中文标题】#include <opencv2/opencv.hpp> 在 VS 2013 中不起作用【英文标题】:#include <opencv2/opencv.hpp> not working in VS 2013 【发布时间】:2015-08-26 06:44:25 【问题描述】:我有 VS2013 社区版,我刚刚将 OpenCV 安装在目录 c:\openCV3 中,并且有一个 build 子文件夹,其中包含该子文件夹等,一切看起来都很正常。所以我用#include <opencv2/opencv.hpp>
行创建了一个空项目,但我得到了
错误 1 错误 C1083: 无法打开包含文件: 'opencv2/opencv.hpp': 没有这样的文件或目录 d:\devt\cplusplus\opencv\test1\test1\source.cpp 1 1 Test1
但是我已将项目的附加包含目录修改为:
C:\OpenCV3\build\include\opencv;C:\OpenCV3\build\include\opencv2;C:\OpenCV3\build\include;%(AdditionalIncludeDirectories)
但是什么都不做,错误并没有消失。以前问过几乎相同的问题,但答案对我不起作用。
更新:
我右键单击<opencv2/opencv.hpp>
,然后在弹出菜单中选择 OpenDocument。
我收到以下消息框:
令我惊讶的是,没有提到我的一组额外的包含目录。
【问题讨论】:
C:\OpenCV3\build\include\opencv2 中是否有名为 opencv2.hpp 的文件 如果您在其他目录中使用"C:\OpenCV3\build\include\opencv2"
,您不应该只包含<opencv2.hpp>
而不是<opencv2/opencv2.hpp
吗?
不应该是<opencv2/opencv.hpp>
吗?
这是一个错字,这是我写的:#include 不要使用包含 C:\OpenCV3\build\include\opencv 和 C:\OpenCV3\build\include\opencv2,而是尝试使用C:\OpenCV3\build\include\
。当您调用包含时,您已经在告诉您正在使用的文件夹:
#include <opencv2/opencv.hpp>
在这种情况下,VS 在文件夹 opencv2 中搜索 opencv2/opencv.hpp... VS 必须在文件夹 include 中搜索,所以它会找到 opencv2/opencv.hpp...
(或者您可以尝试将您的包含修改为“#include”
希望对你有帮助。
【讨论】:
你的建议是我尝试的第一件事,但它不起作用。 嗯。这很奇怪...您是否按照本教程中的步骤操作:docs.opencv.org/3.0-beta/doc/tutorials/introduction/…?其他模块工作正常吗?核心、imgproc、highgui...? 其他模块没试过,但肯定是VS2013社区版的问题。我想知道它是否有故意的限制。 这是一个很棒的教程,谢谢,我不知道它是否解决了我的问题,但我学到了很多东西。 嗯,有一种解决方法:将opencv2目录树复制到源项目中,并在每个地方将#include <...>替换为#include <...>。让我想知道 VS2013 社区版是残废还是错误。【参考方案2】:我在 VS2013 中遇到了类似的问题 - 感觉 Additional Include Directories
无法正常工作。
但是,正如我后来发现的那样,在编辑时
项目 -> 属性 -> C/C++ -> 常规 -> 附加包含目录
我没有注意属性面板右上角选中的配置:(Debug/Release
等)。
您可以选择All Configurations
,以便您的更改适用于Release
和Debug
构建模式,或者您应该为每种构建类型设置适当的单独配置(设置Additional Include Directories
等)。
【讨论】:
是的,这对我有用——太奇怪了,因为我在 Pluralsight 中观看的教程中没有解释这一点。 Kobi Hikri 的 .NET 中的 OpenCV 入门。当教程中似乎缺少信息(所有事情!)时,让我发疯。以上是关于#include <opencv2/opencv.hpp> 在 VS 2013 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章