簡體   English   中英

Visual Studio 2012:“opencv2/opencv.hpp”:沒有這樣的文件或目錄 (C1083)

[英]Visual Studio 2012: 'opencv2/opencv.hpp' : No such file or directory (C1083)

這個問題問了好幾次了,有一些答案,但是這個問題比較具體,附加目錄路徑設置正確(找到文件)。

盡管如此,我還是在構建我的項目時出現以下錯誤:

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

但我可以右鍵單擊該文件並在 Visual Studio 2012 中打開它?

可以毫無問題地找到文件

我試過:

1)指定完整路徑:WORKS!

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

2) 將文件放入 C:\\ 不起作用! (添加。添加的目錄)

3) 具有相同包含語法的空項目。 (添加。添加的目錄)。 作品!

4)我用CMake配置了同一個項目的VS2010版本,我也有同樣的問題。

任何提示可能導致此錯誤的原因?

打開 Configuration Properties > C/C++ > General ,並編輯字段 Additional Include Directories 以添加以下 3 個路徑(用於標題): C:\\OpenCV2.3\\build\\include\\opencv C:\\OpenCV2.3\\build\\包括 \\opencv2 C:\\OpenCV2.3\\build\\include

project property => C/C++ => General => Additional include Directories => "把你的openCV文件夾中的庫地址例如:C:\\opencv\\build\\include 如下圖所示在此處輸入圖片說明

在我的情況下,問題與導出的類有關。

我有 2 個 VS 項目。 讓我們將它們命名為 A 和 B。項目 A 使用項目 B 中的類; 項目 B 使用 OpenCV 類。 項目 A 沒有使用(都沒有鏈接)OpenCV。 (你可以想象項目 A 通過項目 B 使用 openCV)。

但是如果 B 的任何導出類(由 A 使用)有一個 OpenCV 類型的私有成員(例如 cv::Mat),在這種情況下,錯誤 C1083 就會出現,盡管我在項目 B 中正確鏈接了 openCV。

我的解決方案是小心包含在項目 B 的導出類的 *.hpp 文件中。

希望它有用。

除了現有的答案。 嘗試改變

<opencv2/core.hpp> 

"opencv2/core.hpp". 

由於我運行的是 64 位窗口 10,visual studio Professional 2017,我按照以下步驟進行修復:

  1. 項目 > 屬性 - > 將平台更改為 x64

  2. 項目屬性 > C/C++ -> General -> Additional include Directories ->{DIR}{PATH}\\opencv\\opencv\\build\\include

  3. 項目屬性 > C/C++ -> 所有選項 -> 附加包含目錄 ->{DIR}{PATH}\\opencv\\opencv\\build\\include

  4. 項目屬性> Linker -> Input -> Additional Dependencies -> Edit.. -> 輸入'opencv_world330d.lib' -> OK -> OK

這很有趣,但似乎 Visual Studio 找不到 rigt 頭文件僅僅是因為 Opencv2 文件夾中沒有 Opencv2 文件夾我的意思是在閱讀源代碼時

#include <opencv2/core/core.hpp>

並遵循包含目錄位置,因此

$(OPENCV_DIR)\\build\\include\\opencv2

他會嘗試找到一些

$(OPENCV_DIR)\\build\\include\\opencv2\\opencv2\\core\\core.hpp

他永遠找不到僅僅因為基本目錄不匹配

要解決這個問題,只需從包含指令中刪除基本目錄(opencv2):

#include <core.hpp>

我希望這個能幫上忙

您必須更改 Project > Properties -> 將平台更改為 x64 並再次設置 bin、lib 和 include 文件夾。

在此之后,您還必須將“解決方案平台”選項卡從 x86 更改為 x64。

在此之后,您將能夠使用 OpenCV。

如果你把標題放在你的項目中。 正如@CalaveraLoco 的回答。 可以使用相對路徑來訪問標頭。

但最好將項目文件夾路徑包含在您的項目設置中。

  1. 打開項目的Properties
  2. 選擇C/C++
  3. 選擇General
  4. 添加$(ProjectDir); Addition Include Directories

在 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,希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM