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?
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?
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
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.
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
En plus des réponses existantes. Essayer de changer
<opencv2/core.hpp>
à
"opencv2/core.hpp".
depuis que je cours avec la fenêtre 64 bits 10, visual studio professional 2017, je suis en-dessous de l'étape pour corriger:
Projet> Propriétés -> passer de la plate-forme à x64
propriété du projet> C/C++ -> Général -> Répertoires d'inclusion supplémentaires -> {DIR} {CHEMIN}\opencv\opencv\build\include
propriété du projet> C/C++ -> Toutes les options -> Répertoires d'inclusion supplémentaires -> {DIR} {CHEMIN}\opencv\opencv\build\include
propriété du projet> lieur -> entrée -> dépendances supplémentaires -> édition .. -> entrez 'opencv_world330d.lib' -> OK -> OK
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
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.
Properties
du projet.C/C++
General
$(ProjectDir);
dans Addition Include Directories
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.