Include Dateien streiken
-
Hi,
ich arbeite grade für mein Studium an einem recht großem Projekt. Gearbeitet wird bei dem Projekt mit Visual Studio 2010.
Nachdem ich compiliert habe bzw. schon währenddessen kommt es sehr häufig vor, dass auf einmal Include-Dateien nicht mehr erkannt werden. Danach wird die Fehlermeldung gezeigt, dass die Datei nicht gefunden wird. Klicke ich aber mit Rechtsklick auf die Datei ->"Dokument öffnen" wird das richtige Dokument angezeigt im richtigen Ordner. Woran könnte das liegen?
Nach dem Öffnen des Dokuments erkennt er in VisualStudio die Include-Datei wieder. Bei der Compilierung allerdings ist diese wieder nicht zu finden.Unter den allgemeinen Einstellungen der Includeverzeichnisse sind auch alle benötigten Verzeichnisse aufgeführt, so dass VisualStudio eigentlich alle Include-Dateien finden müsste.
In dem Zusammenhang habe ich auch nirgendwo gefunden, was bei
#include "../3drobot.h"
die beiden Punkte genau bedeuten. Wird in allen Includeverzeichnissen in allen Unterordnern gesucht oder welche Funktionsweise haben die Punkte?Für Tipps wäre ich sehr dankbar.
-
Die Punkte bedeuten, dass vom Projektverzeichnis aus ein Verzeichnis nach oben ("zurück") gegangen wird. Beispiel:
Aktuelles Verzeichnis:
c:\temp\test1
Verwirrende Notation mit Punkten:
..\test2
entspricht:c:\temp\test2
Das kannst du auch in der Konsole mit dem
dir
-Kommando anwenden, um im Verzeichnisbaum zu navigieren. Du bist offensichtlich erst in der Windows-Ära zum PC gekommen.
-
Dankeschön für die Info. Hatte gar nicht an DOS gedacht.
Aber mein Hauptproblem bleibt leider bestehen, da die Include-Dateien weiterhin nicht gefunden werden, obwohl man sie in VS aufrufen kann.
Kann mir da einer helfen?
-
Dann schau doch mal in den Projekteigenschaften nach, welche Pfade da für Include eingestellt sind. Bzw. gib dort den richtigen Pfad ein.
-
Das ist ja eben das Problem.
Unter Eigenschaften->Konfigurationseigenschaften->C/C++->Allgemein->Zusätzliche Includeverzeichnisse sind die Verzeichnisse aufgeführt. Deshalb werden sie ja auch gefunden, wenn man Rechts-Klick macht und "Dokument öffnen" klickt. Aber beim Compilieren werden diese als nicht gefunden angezeigt.
-
Gwend0line schrieb:
Das ist ja eben das Problem.
Unter Eigenschaften->Konfigurationseigenschaften->C/C++->Allgemein->Zusätzliche Includeverzeichnisse sind die Verzeichnisse aufgeführt. Deshalb werden sie ja auch gefunden, wenn man Rechts-Klick macht und "Dokument öffnen" klickt. Aber beim Compilieren werden diese als nicht gefunden angezeigt.
Unabhängig von den eingetragenen Include-Pfaden heißt doch aber diese Angabe
#include "../3drobot.h"
, dass im Verzeichnis über dem Projektverzeichnis gesucht wird, wenn ich mich nicht irre. Kann es sein, dass in einem solchen Fall die include-Pfade nicht greifen (eben weil dann immer eins über dem eingetragenen Pfad gesucht wird)? Bin da selbst gerade nicht ganz sicher. Zeig doch bitte mal deinen Projektpfad und den Pfad, in dem sich der Header befindet.
-
#include "../3drobot.h"
Sucht über dem aktuellen Projektpfad, oder sucht über dem Verzeichnis in dem sich die aktuell zu komplierende Datei befindet.
-
Okay, ich versuche das mal zu verstehen. "Projektpfad" bedeutet der Pfad in dem das Projekt von Visual Studio enthalten ist (*.vcxproj-Datei) oder der Pfad in dem die Datei, in der
#include "../3drobot.h"
steht?
Die Projektdatei findet sich auf "M:\" und die Headerdateien, die extern eingebunden werden, befinden sich auf "C:\". Könnte das die Lösung des Rätsels sein?