Verwendung von Include-Dateien

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu BCC32


In C++ haben Header-Dateien immer die Dateierweiterung .h oder .hpp.

Suchalgorithmen für Include-Dateien

BCC32 sucht folgendermaßen nach Dateien, die in Ihren Quelltext mit der Direktive #include einbezogen sind:

  • Wenn Sie bei der Include-Anweisung einen Pfad oder ein Verzeichnis angegebenen haben, sucht der Compiler nur in diesem Pfad/Verzeichnis.
    Wenn Sie beispielsweise die folgende Anweisung angegeben haben:
    #include "c:\C++\include\vcl\vcl.h"
    muss die Header-Datei vcl.h sich im Verzeichnis C:\C++\include\vcl befinden.
    Wenn Sie die Anweisung:
    #include <vcl\vcl.h>
    angegeben und die Option Include-Dateisuchpfad auf den Pfad C:\C++\include gesetzt haben, muss sich die Datei vcl.h in C:\C++\include\vcl befinden und nicht in C:\C++\include oder C:\vcl.
  • Wenn Sie die Anweisung
    #include <somefile>
    in Ihren Quelltext aufnehmen, sucht der Compiler <somefile> nur in den Verzeichnissen, die in der Include-Option Include-Dateisuchpfad angegeben sind.
  • Mit der Anweisung
    #include "somefile"
    in Ihrem Quelltext sucht der Compiler nach <somefile> in der folgenden Reihenfolge:
    1. In dem Verzeichnis, in dem die Datei mit der #include-Anweisung enthalten ist.
    2. In den Verzeichnissen der Dateien, die die gesuchte Datei einbeziehen (#include).
    3. Im aktuellen Verzeichnis.
    4. In den Verzeichnissen, die in der Include-Dateisuchpfad angegeben sind.

Suchalgorithmen für Bibliotheksdateien

Die Suchalgorithmen für Bibliotheksdateien entsprechen weitgehend den Suchalgorithmen für Include-Dateien:

  • Implizite Bibliotheken: Der C++-Compiler sucht implizite Bibliotheken nur in den angegebenen Bibliotheksverzeichnissen (Option Bibliothekspfad). Dies entspricht dem Suchalgorithmus für #include "somefile". Implizite Bibliotheksdateien werden vom Compiler automatisch in die Startobjektdatei (C0x.OBJ) gelinkt.
  • Explizite Bibliotheken: Wo der Compiler nach expliziten (benutzerspezifischen) Bibliotheken sucht, hängt teilweise davon ab, wie Sie die Bibliotheksdatei aufgeführt haben. Explizite Bibliotheken werden in der Befehlszeile oder in einer Projektdatei angegeben; diese Dateien haben die Namenserweiterung .LIB.
    • Wenn Sie den Dateinamen einer expliziten Bibliothek ohne Laufwerk oder Verzeichnis angeben (z. B. MYLIB.LIB), sucht der Compiler diese Bibliothek zuerst im aktuellen Verzeichnis. Wird sie dort nicht gefunden, sucht der Compiler in den mit der Option Bibliothekspfad festgelegten Verzeichnissen. Dies entspricht dem Suchalgorithmus für #include "somefile".
    • Wenn Sie eine benutzerspezifische Bibliothek mit Laufwerks- und/oder Verzeichnisangabe aufführen (wie z. B. C:\mystuff\mylib1.lib), sucht der C++-Compiler nur an der angegebenen Position und nicht in anderen Bibliotheksverzeichnissen.

Siehe auch