Diese Frage wurde mehrmals gestellt. Es gibt einige Antworten. Dieses Problem ist jedoch spezifischer. Der zusätzliche Verzeichnispfad ist richtig festgelegt (Dateien werden gefunden).
Trotzdem bekomme ich beim Bau meines Projekts die folgende Fehlermeldung:
fatal error C1083: Cannot open include file:
'opencv2/opencv.hpp': No such file or directory
aber ich kann mit der rechten Maustaste auf die Datei klicken und sie in Visual Studio 2012 öffnen?
Ich habe es versucht:
1) Angabe des vollständigen Pfads: WORKS!
#include <D:\frameworks\opencv_2_4\build\include\opencv2\opencv.hpp>
2) Die Datei in C:\setzen funktioniert nicht! (add. verzeichnisse hinzugefügt)
3) Leeres Projekt mit derselben Include-Syntax. (Add. Verzeichnisse hinzugefügt). FUNKTIONEN!
4) Ich habe eine VS2010-Version desselben Projekts mit CMake konfiguriert, und ich habe dort die gleichen Probleme.
Irgendwelche Hinweise, was diesen Fehler verursachen könnte?
Öffnen Sie Konfigurationseigenschaften> C/C + +> Allgemein, und bearbeiten Sie das Feld Weitere Include-Verzeichnisse zum Hinzufügen von Diesen 3 Pfaden (für die Kopfzeilen): C:\OpenCV2.3\build\include\opencv C:\OpenCV2.3\build\include \opencv2 C:\OpenCV2.3\build\include
In meinem Fall hatte das Problem mit exportierten Klassen zu tun.
Ich habe 2 VS-Projekte. Nennen wir sie A und B . Projekt A verwendet Klassen aus Projekt B; und Projekt B verwendet Klassen von OpenCV . Projekt A hat OpenCV nicht verwendet. (Wie Sie sich vorstellen können, verwendet Projekt A openCV über Projekt B).
Wenn jedoch eine der exportierten Klassen von B (von A verwendet) ein privates Mitglied vom Typ OpenCV (beispielsweise cv :: Mat) hatte, trat in diesem Fall der Fehler C1083 auf, obwohl ich openCV in Projekt B korrekt verknüpft hatte.
Meine Lösung bestand darin, mit den Includes in den * .hpp-Dateien der exportierten Klassen von Projekt B vorsichtig zu sein.
Ich hoffe es ist nützlich.
projekteigenschaft => C/C++ => Allgemein => Zusätzliche Include-Verzeichnisse => "Fügen Sie die Adresse der Bibliothek aus Ihrem openCV-Ordner ein, z. B. C:\opencv\build\include
Neben den vorhandenen Antworten. Versuche zu ändern
<opencv2/core.hpp>
zu
"opencv2/core.hpp".
da ich mit dem 64-Bit-Fenster 10 von Visual Studio Professional 2017 arbeite, folge ich dem folgenden Schritt:
Projekt> Eigenschaften -> Plattform in x64 ändern
projekteigenschaft> C/C++ -> Allgemein -> Zusätzliche Include-Verzeichnisse -> {DIR} {PATH}\opencv\opencv\build\include
projekteigenschaft> C/C++ -> Alle Optionen -> Zusätzliche Include-Verzeichnisse -> {DIR} {PATH}\opencv\opencv\build\include
projekteigenschaft> Linker -> Eingabe -> Zusätzliche Abhängigkeiten -> Bearbeiten .. -> Geben Sie 'opencv_world330d.lib' ein -> OK -> OK
das ist lustig, aber es scheint, dass Visual Studio die Dateien mit den Kopfzeilen nicht finden kann, nur weil es den Opencv2-Ordner im Opencv2-Ordner nicht gibt
#include <opencv2/core/core.hpp>
und nach dem Speicherort der Include-Verzeichnisse
$ (OPENCV_DIR)\build\include\opencv2
er wird versuchen, einige zu finden
$ (OPENCV_DIR)\build\include\opencv2\opencv2\core\core.hpp
was er nie finden wird, nur weil das Basisverzeichnis nicht übereinstimmt
um dieses Problem zu lösen, löschen Sie einfach das Basisverzeichnis (opencv2) aus der Include-Direktive:.
#include <core.hpp>
ich hoffe das wird helfen
Wenn Sie die Header in Ihr Projekt einfügen. Als @ CalaveraLocos Antwort. Konnte den relativen Pfad verwenden, um auf den Header zuzugreifen.
Es ist jedoch besser, den Projektordnerpfad in die Projekteinstellungen aufzunehmen.
Properties
des Projekts.C/C++
auswählenGeneral
auswählen$(ProjectDir);
in Addition Include Directories
Sie müssen Projekt> Eigenschaften -> Plattform in x64 ändern und die Ordner bin, lib und include erneut festlegen.
Danach müssen Sie auch die Registerkarte "Lösungsplattformen" von x86 auf x64 ändern.
Danach können Sie OpenCV verwenden.