这个问题被问了好几次,有一些答案,但是这个问题更具体,附加目录路径设置正确(找到文件)。
尽管如此,构建我的项目时我收到以下错误:
fatal error C1083: Cannot open include file:
'opencv2/opencv.hpp': No such file or directory
但是我可以右键单击该文件并在 Visual Studio 2012 中打开它?
我尝试过:
1)指定完整路径:有效!
#include <D:\frameworks\opencv_2_4\build\include\opencv2\opencv.hpp>
2) 将文件放入 C:\ 不起作用! (添加。添加目录)
3)具有相同包含语法的空项目。 (添加。添加目录)。有效!
4)我已经使用CMake配置了同一项目的VS2010版本,并且我也遇到了同样的问题。
有什么提示可能导致此错误吗?
打开配置属性 > C/C+ + > 常规 ,然后编辑字段 要添加的附加包含目录 这 3 个路径(用于标头): C:\OpenCV2.3 uild\include\opencv C:\OpenCV2.3 uild\include \opencv2 C:\OpenCV2.3 uild\include
项目属性=> C / C ++ =>常规=>附加包含目录=>“从openCV文件夹中放置库的地址,例如:C:\ opencv uild \ include 如下图所示
如果您将标题放入项目中。正如@CalaveraLoco 的回答。可以使用相对路径访问标题。
但最好将项目文件夹路径包含到项目设置中。
Properties
。C/C++
General
$(ProjectDir);
添加到 Addition Include Directories
除了现有的答案。尝试改变
<opencv2/core.hpp>
到
"opencv2/core.hpp".
就我而言,问题与导出的类有关。
我有 2 个 VS 项目。我们将它们命名为 A 和 B。 项目 A 使用项目 B 中的类;项目B使用OpenCV的类。 项目 A 没有使用(也没有链接)OpenCV。 (正如您可以想象的那样,项目 A 通过项目 B 使用 openCV)。
但是,如果 B 的任何导出类(由 A 使用)具有 OpenCV 类型的私有成员(例如 cv::Mat),在这种情况下,会出现错误 C1083,尽管我在项目 B 中正确链接了 openCV .
我的解决方案是小心包含项目 B 的导出类的 *.hpp 文件。
希望有用。
由于我运行的是 64 位 Windows 10、Visual Studio Professional 2017,因此我按照以下步骤进行修复:
项目 > 属性 -> 将平台更改为 x64
项目属性 > C/C++ -> 常规 -> 其他包含目录 ->{DIR}{PATH}\opencv\opencv uild\include
项目属性 > C/C++ -> 所有选项 -> 其他包含目录 ->{DIR}{PATH}\opencv\opencv uild\include
项目属性>链接器->输入->附加依赖项->编辑..->输入'opencv_world330d.lib'->确定->确定
在 Windows 上:
当您调试应用程序时使用“x64”模式
这适用于 VS2015,希望这会有所帮助。
这很有趣,但似乎 Visual Studio 找不到 rigt 头文件只是因为 Opencv2 文件夹中没有 Opencv2 文件夹,我的意思是在阅读源代码时
#include <opencv2/core/core.hpp>
并遵循包含目录位置,因此
$(OPENCV_DIR) uild\include\opencv2
他会尝试找到一些
$(OPENCV_DIR) uild\include\opencv2\opencv