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

问题描述 投票:0回答:8

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

尽管如此,构建我的项目时我收到以下错误:

 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)指定完整路径:有效!

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

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

3)具有相同包含语法的空项目。 (添加。添加目录)。有效!

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

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

c++ opencv visual-studio-2012 build
8个回答
14
投票

打开配置属性 > C/C+ + > 常规 ,然后编辑字段 要添加的附加包含目录 这 3 个路径(用于标头): C:\OpenCV2.3 uild\include\opencv C:\OpenCV2.3 uild\include \opencv2 C:\OpenCV2.3 uild\include


5
投票

项目属性=> C / C ++ =>常规=>附加包含目录=>“从openCV文件夹中放置库的地址,例如:C:\ opencv uild \ include 如下图所示 enter image description here


3
投票

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

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

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

2
投票

除了现有的答案。尝试改变

<opencv2/core.hpp> 

"opencv2/core.hpp". 

1
投票

就我而言,问题与导出的类有关。

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

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

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

希望有用。


1
投票

由于我运行的是 64 位 Windows 10、Visual Studio Professional 2017,因此我按照以下步骤进行修复:

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

  2. 项目属性 > C/C++ -> 常规 -> 其他包含目录 ->{DIR}{PATH}\opencv\opencv uild\include

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

  4. 项目属性>链接器->输入->附加依赖项->编辑..->输入'opencv_world330d.lib'->确定->确定


1
投票

在 Windows 上:

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

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

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


0
投票

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

#include <opencv2/core/core.hpp>

并遵循包含目录位置,因此

$(OPENCV_DIR) uild\include\opencv2

他会尝试找到一些

$(OPENCV_DIR) uild\include\opencv2\opencv

© www.soinside.com 2019 - 2024. All rights reserved.