Wie fügt man Header-Dateien in Visual Studio 2008 ein?

8

Ich versuche gerade, ein einfaches Programm zu kompilieren, das zwei Header-Dateien enthält. Ich sehe sie im Solution Explorer, wo ich sie über "include existing files" eingefügt habe. Wenn ich jedoch mein Programm starte, wird der folgende Fehler angezeigt. fataler Fehler C1083: Kann die Include-Datei nicht öffnen: 'FileWrite.h': Keine solche Datei oder Verzeichnis. Das Problem ist, dass ich die Datei im Header-Ordner und in dem Code sehe, den ich geschrieben habe:

%Vor%

und dann der Rest des Programmcodes. Gibt es noch etwas anderes, damit der Compiler die Header-Datei sehen und sie mit der .cpp-Datei verknüpfen kann, die ich kompilieren möchte?

    
Sergio 15.01.2011, 21:39
quelle

4 Antworten

15

Wenn Sie in Ihren Code etwas wie #include "FileWrite.h" schreiben, müssen Sie sicherstellen, dass der Compiler diese Datei finden kann. Es gibt drei Optionen:

  • FileWrite.h sollte sich entweder im selben Verzeichnis wie Ihre Quellcodedatei (.cpp) oder
  • befinden
  • Der Pfad zu dieser Header-Datei sollte in den Eigenschaften des Projekts (in C / C ++ - & gt; General - & gt; Zusätzliche Include-Verzeichnisse ) oder
  • aufgeführt sein
  • Pfad kann in VisualStudio festgelegt werden - fügen Sie ihn zu Include-Dateien in Extras- & gt; Optionen- & gt; Projekte und Lösungen- & gt; VC ++ - Verzeichnisse

Welche dieser Shell-Optionen verwendet wird, hängt davon ab, ob dieser Header von diesem Projekt stammt (1. Option) oder von einem anderen Projekt (einer der anderen beiden Optionen).

    
Bojan Komazec 15.01.2011 21:52
quelle
10

Es gibt zwei Möglichkeiten, dies zu tun.

1) Nur für das aktuelle Projekt

%Vor%

2) Für alle Projekte

%Vor%

Verzichten Sie darauf, 2 zu verwenden, da es schwierig ist, Abhängigkeiten für ein Projekt zu finden, wenn Sie es auf einem anderen System kompilieren.

    
DumbCoder 15.01.2011 21:50
quelle
1

Beim Einschließen von Dateien sucht der Compiler zuerst im aktuellen Verzeichnis (dem Verzeichnis, das die Quelle .cpp enthält) und dann in den zusätzlichen Include-Verzeichnissen. Wenn sich FileWrite.h nicht im selben Verzeichnis wie Ihre Quelldatei befindet, überprüfen Sie die zusätzlichen enthaltenen Verzeichnisse.

Sehen Sie sich auf der Eigenschaftenseite des Projekts die zusätzlichen Include-Verzeichnisse an und prüfen Sie, ob sie den Ordner enthalten, in dem sich FileWrite.h befindet.

    
Motti 15.01.2011 21:41
quelle
1

Sie haben gesagt, die Datei befindet sich im Ordner "headers". Dies könnte entweder den Header filter oder ein tatsächliches Header-Verzeichnis auf dem Dateisystem bedeuten. Wenn Sie eine Datei aus Ihrem eigenen Projekt hinzufügen, müssen Sie den Pfad aus der Datei angeben, in die Sie die Datei einfügen. Also, wenn du so etwas hättest:

%Vor%

Sie würden #include "../include/my_object.h" in main.cpp verwenden.

Das ist für Verzeichnisse. Die Ordner, die Sie in Ihrem Projekt sehen, werden Filter genannt und haben absolut keine Beziehung zur Verzeichnisstruktur Ihres Projekts, es sei denn, Sie zwingen es dazu. Sie müssen darauf achten, wie die Struktur im Windows Explorer aussieht, um festzustellen, welcher Pfad in einer include-Anweisung verwendet werden soll.

    
Crazy Eddie 15.01.2011 22:45
quelle