Visual Studio 2012: 'opencv2/opencv.hpp' : Keine solche Datei oder das Verzeichnis (C1083)
Diese Frage wurde schon mehrfach gefragt, es gibt einige Antworten, aber das problem ist spezifischer, die zusätzlichen Verzeichnisse Pfad richtig eingestellt ist (Dateien gefunden werden).
Dennoch den Aufbau meines Projektes bekomme ich folgende Fehlermeldung:
fatal error C1083: Cannot open include file:
'opencv2/opencv.hpp': No such file or directory
aber ich kann Rechtsklick auf die Datei und öffnen Sie in visual studio 2012?
Habe ich versucht:
1) den vollständigen Pfad angeben: FUNKTIONIERT!
#include <D:\frameworks\opencv_2_4\build\include\opencv2\opencv.hpp>
2) wenn die Datei auf C:\ Funktioniert nicht! (add. Verzeichnisse Hinzugefügt)
3) Leeres Projekt mit der gleichen syntax enthalten. (add. Verzeichnisse Hinzugefügt). FUNKTIONIERT!
4) hab ich konfiguriert, ein VS2010-Version das gleiche Projekt mit CMake und habe dort die gleichen Probleme.
Irgendwelche Tipps, was könnte die Ursache dieses Fehlers?
- Cmake zu generieren Projekt-Dateien.. Das macht Sie sicher, dass die include-Verzeichnisse und Bibliotheken sind richtig verknüpft.
- Ich habe cmake...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie Konfiguration Eigenschaften > C/C+
+ > allgemein , und Bearbeiten Sie das Feld
Zusätzliche Include-Verzeichnisse hinzufügen
diese 3 Pfade (für die überschriften):
C:\OpenCV2.3\build\include\opencv
C:\OpenCV2.3\build\include
\opencv2
C:\OpenCV2.3\build\include
Projekt, property => C/C++ => allgemein => Zusätzliche include-Verzeichnisse => "setzen Sie die Adresse der Bibliothek aus Ihrem openCV-Ordner, z.B.: C:\opencv\build\include
Wie im Bild unten gezeigt
In meinem Fall das problem hatte damit zu tun, exportierte Klassen.
Ich habe 2 VS-Projekte. Nennen wir Sie A und B.
Projekt verwendet Klassen aus Projekt B; Projekt B verwendet Klassen von OpenCV.
Projekt nicht verwenden (weder link) OpenCV. (wie Sie sich vorstellen können Ein Projekt verwendet openCV throught Projekt B).
Aber wenn eine der exportierten Klassen B (wird durch) hatte einen private member vom Typ OpenCV (cv::Mat, zum Beispiel), in diesem Fall, die Fehler C1083 erschien, obwohl ich korrekt verbunden ist openCV in Projekt B.
Meine Lösung war, sei vorsichtig, die gehören in die *.hpp-Dateien der exportierten Klassen von Projekt B.
Hoffe, es ist nützlich.
Zusätzlich zu den vorhandenen Antworten. Versuchen Sie, ändern Sie
zu
dass ist lustig, aber es scheint, dass Visual Studio nicht finden können, die rigt Header-Dateien einfach, weil es nicht Opencv2 Ordner in die Opencv2 Ordner meine ich, dass beim Lesen der source-code
und folgende Unterverzeichnisse Lage,so
er wird versuchen zu finden, einige
die er nie finden wird, einfach weil die base directory mismatch
um dieses problem zu lösen, löschen Sie einfach den Basis-Verzeichnis(opencv2) von dem include
Richtlinie :
ich hoffe das hilft
Haben Sie zu ändern, Projekt - > Eigenschaften -> ändern-Plattform x64, und legen Sie die bin -, lib-und include-Ordner wieder.
Nach dieser müssen Sie auch ändern "Solution platforms" Register von x86 zu x64.
Danach werden Sie in der Lage sein zu verwenden OpenCV.
da läuft bei mir mit 64-bit-Fenster 10, visual studio professional 2017, I folgt Schritt zu beheben:
Projekt - > Eigenschaften -> ändern-Plattform x64
Projekt property > C/C++ -> allgemein -> Zusätzliche include Verzeichnisse ->{DIR}{PATH}\opencv\opencv\build\include
Projekt property > C/C++ -> Alle Optionen -> Zusätzliche include Verzeichnisse ->{DIR}{PATH}\opencv\opencv\build\include
Projekt property > Linker -> Eingang -> Zusätzliche Abhängigkeiten -> Bearbeiten.. -> enter 'opencv_world330d.lib' -> OK -> OK
Wenn du den Header in Ihrem Projekt. Wie @CalaveraLoco Antwort. Konnten Sie den relativen Pfad für den Zugriff auf die header.
Aber es ist besser, den Projekt-Ordner-Pfad in den Einstellungen Ihres Projektes.
Properties
des Projekts.C/C++
General
$(ProjectDir);
inAddition Include Directories