web-dev-qa-db-fra.com

Visual Studio 2012: 'opencv2/opencv.hpp': aucun fichier ou répertoire de ce type (C1083)

Cette question a été posée plusieurs fois, il y a des réponses, mais ce problème est plus spécifique, le chemin des répertoires supplémentaires est défini correctement (les fichiers sont trouvés) 

Néanmoins, en construisant mon projet, j'obtiens l'erreur suivante:

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

mais je peux faire un clic droit sur le fichier et l'ouvrir dans visual studio 2012?

File can be found without a problem

J'ai essayé:

1) spécifiant le chemin complet: WORKS!

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

2) Mettre le fichier dans C:\ne fonctionne pas! (ajouter des répertoires ajoutés)

3) Projet vide avec la même syntaxe d'inclusion. (ajouter des répertoires ajoutés). TRAVAUX!

4) J'ai configuré une version VS2010 du même projet avec CMake et j'y rencontre les mêmes problèmes.

Des indices sur ce qui pourrait causer cette erreur? 

9
user1767754

Ouvrez les propriétés de configuration> C/C + +> Général et modifiez le champ Répertoires d'inclusion supplémentaires à ajouter Ces 3 chemins (pour les en-têtes): C:\OpenCV2.3\build\include\opencv C:\OpenCV2.3\build\include \opencv2 C:\OpenCV2.3\build\include

8
Tom J Muthirenthi

Dans mon cas, le problème concernait les classes exportées.

J'ai 2 projets VS. Appelons-les A et B ... Le projet A utilise les classes du projet B; et le projet B utilise des classes de OpenCV . Le projet A n’a pas utilisé OpenCV (ni le lien). (comme vous pouvez l'imaginer, le projet A utilise openCV dans le projet B).

Mais si l'une des classes exportées de B (utilisée par A) avait un membre privé de type OpenCV (cv :: Mat, par exemple), dans ce cas, l'erreur C1083 est apparue alors que j'avais correctement lié openCV dans le projet B.

Ma solution était d’être prudent avec les inclus dans les fichiers * .hpp des classes exportées du projet B.

J'espère que c'est utile.

1
S. Huerta

project property => C/C++ => General => Additional include Directories => "mettez l'adresse de la bibliothèque à partir de votre dossier openCV, par exemple: C:\opencv\build\include enter image description here

1
hab

En plus des réponses existantes. Essayer de changer 

<opencv2/core.hpp> 

à 

"opencv2/core.hpp". 
1
CalaveraLoco

depuis que je cours avec la fenêtre 64 bits 10, visual studio professional 2017, je suis en-dessous de l'étape pour corriger:

  1. Projet> Propriétés -> passer de la plate-forme à x64

  2. propriété du projet> C/C++ -> Général -> Répertoires d'inclusion supplémentaires -> {DIR} {CHEMIN}\opencv\opencv\build\include

  3. propriété du projet> C/C++ -> Toutes les options -> Répertoires d'inclusion supplémentaires -> {DIR} {CHEMIN}\opencv\opencv\build\include

  4. propriété du projet> lieur -> entrée -> dépendances supplémentaires -> édition .. -> entrez 'opencv_world330d.lib' -> OK -> OK 

0
mya

c'est drôle, mais il semble que Visual Studio ne trouve pas les fichiers d'en-tête rigt simplement parce qu'il n'y a pas de dossier Opencv2 dans le dossier Opencv2 

#include <opencv2/core/core.hpp>

et en suivant l’emplacement des répertoires d’inclusion, 

$ (OPENCV_DIR)\build\include\opencv2

il va essayer de trouver 

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

qu'il ne trouvera jamais simplement parce que le répertoire de base est incompatible

pour résoudre ce problème, supprimez simplement le répertoire de base (opencv2) de la directive include

#include <core.hpp>

j'espère que cela aidera

0
jihed gasmi

Si vous mettez les en-têtes dans votre projet. Comme la réponse de @ CalaveraLoco. Pourrait utiliser le chemin relatif pour accéder à l'en-tête.

Mais il est préférable d’inclure le chemin du dossier de projet dans les paramètres de votre projet.

  1. Ouvrez Properties du projet.
  2. Sélectionnez C/C++
  3. Sélectionnez General
  4. Ajoutez $(ProjectDir); dans Addition Include Directories
0
Jiu

Vous devez modifier Projet> Propriétés -> changer la plate-forme en x64 et définir à nouveau les dossiers bin, lib et include.

Après cela, vous devez également modifier l'onglet "Plateformes de solution" de x86 à x64.

Après cela, vous pourrez utiliser OpenCV.

0
jok23