Visual Studio 2012:'opencv2 / opencv.hpp':没有这样的文件或目录(C1083)

时间:2014-02-01 16:46:50

标签: c++ opencv visual-studio-2012 build

这个问题被多次询问,有一些答案,但这个问题更具体,附加目录路径设置正确(找到文件)。

然而构建我的项目我收到以下错误:

 fatal error C1083: Cannot open include file: 
 'opencv2/opencv.hpp': No such file or directory

但我可以右键点击该文件并在visual studio 2012中打开它吗?

File can be found without a problem

我试过了:

1)指定完整路径:WORKS!

#include <D:\frameworks\opencv_2_4\build\include\opencv2\opencv.hpp>

2)将文件放到C:\不起作用! (添加。目录已添加)

3)使用相同的包含语法的空项目。 (添加。目录添加)。 WORKS!

4)我用CMake配置了VS2010版本的同一个项目,我遇到了同样的问题。

任何可能导致此错误的提示?

9 个答案:

答案 0 :(得分:9)

打开配置属性&gt; C / C + +&gt;一般,并编辑该字段 附加包含要添加的目录 这三条路径(用于标题): C:\ OpenCV2.3 \编译\包括\ OpenCV的 C:\ OpenCV2.3 \编译\包括 \ opencv2 C:\ OpenCV2.3 \构建\包括

答案 1 :(得分:1)

project property =&gt; C / C ++ =&gt;一般=&gt;其他包括Directories =&gt; &#34;从openCV文件夹中输入库的地址,例如:C:\ opencv \ build \ include 如下图所示 enter image description here

答案 2 :(得分:1)

在我的情况下,问题与导出的类有关。

我有2个VS项目。我们将它们命名为A和B. 项目A使用项目B中的类;和项目B使用OpenCV类。 项目A没有使用(两个链接)OpenCV。 (你可以想象项目A在项目B中使用openCV。)

但是如果B的任何导出类(由A使用)都有一个类型为OpenCV的私有成员(例如cv :: Mat),那么就会出现错误C1083,尽管我已正确链接openCV项目B。

我的解决方案是要小心项目B的导出类的* .hpp文件中的包含。

希望它有用。

答案 3 :(得分:1)

除现有答案外。尝试改变

<opencv2/core.hpp> 

"opencv2/core.hpp". 

答案 4 :(得分:0)

这很有趣但似乎Visual Studio找不到rigt头文件只是因为Opencv2文件夹中没有Opencv2文件夹我的意思是在阅读源代码时

  

#include <opencv2/core/core.hpp>

并在include目录位置之后,因此

  

$(OPENCV_DIR)\构建\包括\ opencv2

他会尝试找一些

  

$(OPENCV_DIR)\构建\包括\ opencv2 \ opencv2 \芯\ core.hpp

他永远找不到因为基本目录不匹配

解决这个问题只需从include中删除基目录(opencv2) 指令:

  

#include <core.hpp>

我希望这会有所帮助

答案 5 :(得分:0)

您必须更改项目&gt;属性 - &gt;将平台更改为x64并再次设置bin,lib和include文件夹。

之后您还必须将“解决方案平台”选项卡从x86更改为x64。

在此之后,您将能够使用OpenCV。

答案 6 :(得分:0)

因为我正在使用64位窗口10,visual studio professional 2017,我按照以下步骤进行修复:

  1. 项目&gt;属性 - &gt;将平台更改为x64

  2. 项目属性&gt; C / C ++ - &gt;一般 - &gt;其他包括目录 - &gt; {DIR} {PATH} \ opencv \ opencv \ build \ include

  3. 项目属性&gt; C / C ++ - &gt;所有选项 - &gt;其他包括目录 - &gt; {DIR} {PATH} \ opencv \ opencv \ build \ include

  4. 项目属性&gt;链接器 - &gt;输入 - &gt;附加依赖性 - &gt;编辑.. - &gt;输入&#39; opencv_world330d.lib&#39; - &GT;好的 - &gt;好的

答案 7 :(得分:0)

如果将标题放在项目中。作为@CalaveraLoco的答案。可以使用相对路径访问标头。

但是最好在项目设置中包含项目文件夹路径。

  1. 打开项目的Properties
  2. 选择C/C++
  3. 选择General
  4. $(ProjectDir);添加到Addition Include Directories

答案 8 :(得分:0)

在Windows上:

  1. 在“搜索”中,搜索,然后选择:“系统”(控制面板)。 单击“高级系统设置”链接。
  2. 单击环境变量。在系统变量中,单击“路径”。
  3. 单击“修改”。点击“新建”并添加以下内容(不添加 引号):“ C:\ opencv \ build \ x64 \ vc14 \ lib \”。
  4. 再次单击“新建”并添加以下内容(不带引号) 标记):“ C:\ opencv \ build \ x64 \ vc14 \ bin \”。
  5. 重新启动Windows。
  6. 打开Visual Studio并创建一个新项目。在“解决方案资源管理器”上:
  7. 右键单击项目标题,然后转到“属性”。 更改 平台到“ x64”
  8. 转到“ C / C ++”->“常规”->“其他包含目录”,然后 添加(不带引号)“ C:\ opencv \ build \ include”。点击 “应用”。
  9. 转到“链接器”->“常规”->“其他图书馆目录”,然后 添加(不带引号)“ C:\ opencv \ build \ x64 \ vc14 \ lib”。请点击 在“应用”上。
  10. 转到“链接器”->“输入”->“其他依赖项”并添加 (不带引号) “ opencv_world310.lib; opencv_world310d.lib;”。点击“应用”。

当您调试应用程序时,请使用“ x64”模式

此功能可与VS2015一起使用,希望对您有所帮助。