web-dev-qa-db-ja.com

Visual Studio 2012: 'opencv2 / opencv.hpp':そのようなファイルまたはディレクトリはありません(C1083)

この質問は何度も尋ねられましたが、いくつかの回答がありますが、この問題はより具体的であり、追加のディレクトリパスが正しく設定されています(ファイルが見つかります)。

それでもプロジェクトをビルドすると、次のエラーが発生します。

 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)同じインクルード構文を持つ空のプロジェクト。 (追加。追加されたディレクトリ)。動く!

4)CMakeを使用して同じプロジェクトのVS2010バージョンを構成しましたが、同じ問題があります。

このエラーを引き起こしている可能性のあるヒントはありますか?

9
user1767754

[構成プロパティ]> [C/C + +]> [全般]を開き、[追加のインクルードディレクトリ]フィールドを編集して、次の3つのパス(ヘッダー用)を追加します:C:\ OpenCV2.3\build\include\opencv C:\ OpenCV2.3\build\include\opencv2 C:\ OpenCV2.3\build\include

10

私の場合、問題はエクスポートされたクラスに関係していました。

2つのVSプロジェクトがあります。それらにAとBという名前を付けます。プロジェクトAはプロジェクトBのクラスを使用します。プロジェクトBはOpenCVのクラスを使用しています。プロジェクトAはOpenCVを使用していません(どちらのリンクも使用していません)。 (ご想像のとおり、プロジェクトAはプロジェクトB全体でopenCVを使用しています)。

しかし、Bのエクスポートされたクラス(Aによって使用される)のいずれかにタイプOpenCV(cv :: Matなど)のプライベートメンバーがあった場合、プロジェクトBでopenCVを正しくリンクしていましたが、エラーC1083が表示されました。

私の解決策は、プロジェクトBのエクスポートされたクラスの* .hppファイルのインクルードに注意することでした。

お役に立てれば幸いです。

1
S. Huerta

プロジェクトプロパティ=> C/C++ =>一般=>追加のインクルードディレクトリ=> "openCVフォルダーからライブラリのアドレスを入力します。例:C:\ opencv\build\include以下の図に示すように enter image description here

1
hab

既存の回答に加えて。変えよう

<opencv2/core.hpp> 

"opencv2/core.hpp". 
1
CalaveraLoco

私は64ビットウィンドウ10、Visual Studio Professional 2017で実行しているので、以下の手順に従って修正します。

  1. プロジェクト>プロパティ->プラットフォームをx64に変更

  2. プロジェクトプロパティ> C/C++->一般->追加のインクルードディレクトリ-> {DIR} {PATH}\opencv\opencv\build\include

  3. プロジェクトプロパティ> C/C++->すべてのオプション->追加のインクルードディレクトリ-> {DIR} {PATH}\opencv\opencv\build\include

  4. プロジェクトプロパティ>リンカ->入力->追加の依存関係->編集...->「opencv_world330d.lib」と入力-> OK-> OK

0
mya

それは面白いですが、Opencv2フォルダーにOpencv2フォルダーがないためにVisual Studioが厳密なヘッダーファイルを見つけられないようです。つまり、ソースコードを読み取るときに

#include <opencv2/core/core.hpp>

インクルードディレクトリの場所に続いて

$(OPENCV_DIR)\ build\include\opencv2

彼はいくつかを見つけようとします

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

ベースディレクトリが一致していないからといって、彼が見つけることは決してありません。

この問題を解決するには、includeディレクティブからベースディレクトリ(opencv2)を削除します。

#include <core.hpp>

これが役に立てば幸い

0
jihed gasmi

ヘッダーをプロジェクト内に配置した場合。 @CalaveraLocoの答えとして。相対パスを使用してヘッダーにアクセスできます。

ただし、プロジェクト設定にプロジェクトフォルダパスを含めることをお勧めします。

  1. プロジェクトのPropertiesを開きます。
  2. _C/C++_を選択します
  3. Generalを選択します
  4. _Addition Include Directories_に$(ProjectDir);を追加します
0
Jiu

プロジェクト>プロパティ->プラットフォームをx64に変更し、bin、lib、includeフォルダーを再度設定する必要があります。

この後、「ソリューションプラットフォーム」タブもx86から​​x64に変更する必要があります。

この後、OpenCVを使用できるようになります。

0
jok23