Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Visual Studio 2012:';opencv2/opencv.hpp';:没有这样的文件或目录(C1083)_C++_Opencv_Visual Studio 2012_Build - Fatal编程技术网

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

C++ Visual Studio 2012:';opencv2/opencv.hpp';:没有这样的文件或目录(C1083),c++,opencv,visual-studio-2012,build,C++,Opencv,Visual Studio 2012,Build,这个问题被问了好几次,有一些答案,但这个问题更具体,附加目录路径设置正确(找到文件) 尽管如此,在构建我的项目时,我还是会遇到以下错误: fatal error C1083: Cannot open include file: 'opencv2/opencv.hpp': No such file or directory 但我可以右键单击该文件并在visual studio 2012中打开它? 我试过: 1) 指定完整路径:工作 #include <D:\frameworks\o

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

尽管如此,在构建我的项目时,我还是会遇到以下错误:

 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) 具有相同include语法的空项目。(添加目录)。工作

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


有什么提示可能导致此错误吗

project property=>C/C++=>General=>Additional include Directory=>“从openCV文件夹中放入库的地址,例如:C:\openCV\build\include 如下图所示
打开配置属性>C/C+ +>常规,然后编辑该字段 其他包括要添加的目录 这3条路径(用于标题): C:\OpenCV2.3\build\include\opencv C:\OpenCV2.3\build\include \opencv2
C:\OpenCV2.3\build\include

在我的例子中,问题与导出的类有关

我有两个VS项目。让我们把它们命名为A和B。 项目A使用项目B中的类;项目B使用OpenCV类。 项目A没有使用(两个链接都没有)OpenCV(正如您可以想象的那样,项目A通过项目B使用OpenCV)

但是如果B的任何导出类(由A使用)有一个OpenCV类型的私有成员(例如cv::Mat),在这种情况下,会出现错误C1083,尽管我在项目B中正确链接了OpenCV

我的解决方案是小心地处理B项目导出类的*.hpp文件中的include


希望它有用。

除了现有的答案之外。尝试更改

<opencv2/core.hpp> 

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

#包括

并遵循include目录位置,因此

$(OPENCV\u DIR)\build\include\opencv2

他会设法找到一些

$(OPENCV\u DIR)\build\include\opencv2\opencv2\core\core.hpp

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

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

#包括


我希望这将有所帮助

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

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


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

由于我使用的是64位window 10,visual studio professional 2017,我将按照以下步骤进行修复:

  • 项目>属性->将平台更改为x64

  • 项目属性>C/C++->General->Additional include目录->{DIR}{PATH}\opencv\opencv\build\include

  • 项目属性>C/C++->所有选项->其他包含目录->{DIR}{PATH}\opencv\opencv\build\include

  • 项目属性>链接器->输入->其他依赖项->编辑..->输入'opencv_world330d.lib'->确定->确定


  • 如果您将标题放在项目中。如@CalaveraLoco的回答。可以使用相对路径访问标题

    但最好将项目文件夹路径包含到项目设置中

  • 打开项目的
    属性
  • 选择
    C/C++
  • 选择
    General
  • $(ProjectDir);
    添加到
    添加包含目录中
  • 在Windows上:

  • 在搜索中,搜索,然后选择:“系统”(控制面板)。 单击“高级系统设置”链接
  • 单击环境变量。在系统变量中,单击“路径”
  • 单击“修改”。单击“新建”并添加以下内容(不带 引号):“C:\opencv\build\x64\vc14\lib\”
  • 再次单击“新建”并添加以下内容(无报价 标记):“C:\opencv\build\x64\vc14\bin\”
  • 重新启动Windows
  • 打开Visual Studio并创建新项目。在“解决方案资源管理器”上:
  • 右键单击项目标题,然后转到“属性”。更改 平台至“x64”
  • 转到“C/C++”->“常规”->“其他包含目录”并 添加(不带引号)“C:\opencv\build\include”。单击 “适用”
  • 转到“链接器”->“常规”->“附加库目录”并 添加(不带引号)“C:\opencv\build\x64\vc14\lib”。单击 关于“应用”
  • 转到“链接器”->“输入”->“其他依赖项”并添加 (不带引号) “opencv_world310.lib;opencv_world310d.lib;”。单击“应用”
  • 调试应用程序时,请使用“x64”模式


    这适用于VS2015,希望这会有所帮助。

    。这确保了包含目录和库的链接正确。不,我不能toI没有#4。只有一个没有最后的“d”#10,以d结尾的文件不存在
    "opencv2/core.hpp".