Utilisation des fichiers d'inclusion

De RAD Studio
Aller à : navigation, rechercher

Remonter à BCC32


Dans C++, les fichiers d'en-tête ont toujours l'extension de fichier .h ou .hpp.

Algorithmes de recherche des fichiers d'inclusion

BCC32 recherche les fichiers inclus dans votre code source via la directive #include en procédant de la manière suivante :

  • Si vous spécifiez un chemin ou un répertoire avec votre instruction include, la recherche du compilateur ne s'applique qu'à l'emplacement spécifié.
    Par exemple, si vous avez l'instruction suivante dans votre code :
    #include "c:\C++\include\vcl\vcl.h"
    le fichier d'en-tête vcl.h doit résider dans le répertoire C:\C++\include\vcl.
    Par ailleurs, si vous utilisez l'instruction :
    #include <vcl\vcl.h>
    et que vous définissez l'option Chemin de recherche des fichiers d'inclusion pour spécifier le chemin C:\C++\include, le fichier vcl.h doit résider dans C:\C++\include\vcl, et pas dans C:\C++\include ni C:\vcl.
  • Si vous placez une instruction
    #include "fichier"
    dans votre code source, le compilateur recherche <fichier> dans l'ordre suivant :
    1. Le répertoire du fichier contenant l'instruction #include.
    2. Les répertoires des fichiers qui incluent (#include) ce fichier.
    3. Le répertoire en cours.
    4. Les répertoires spécifiés par l'option Chemin de recherche des fichiers d'inclusion.

Algorithmes de recherche des fichiers de bibliothèque

Les algorithmes de recherche de fichiers de bibliothèque sont similaires à ceux des fichiers d'inclusion :

  • Bibliothèques implicites : Le compilateur C++ recherche les bibliothèques implicites seulement dans les répertoires de bibliothèque spécifiés (option Chemin de bibliothèque). C'est similaire à l'algorithme de recherche utilisé pour : #include "fichier". Les fichiers de bibliothèque implicites sont ceux que le compilateur lie automatiquement dans le fichier objet de démarrage (C0x.OBJ).
  • Bibliothèques explicites : La façon dont vous listez le fichier de bibliothèque détermine en partie où le compilateur recherche les bibliothèques explicites (spécifiées par l'utilisateur). Les fichiers de bibliothèque explicites sont ceux que vous listez sur la ligne de commande ou dans un fichier projet ; leur nom est suivi de l'extension .LIB.
    • Si vous listez un nom de fichier de bibliothèque explicite sans indiquer de lecteur ni de répertoire (comme MYLIB.LIB), le compilateur recherche d'abord cette bibliothèque dans le répertoire en cours. S'il ne la trouve pas, il la recherche dans les répertoires spécifiés par l'option Chemin de bibliothèque. C'est similaire à l'algorithme de recherche utilisé pour #include "fichier".
    • Si vous listez une bibliothèque spécifiée par l'utilisateur avec les informations de lecteur ou de répertoire (comme C:\mystuff\mylib1.lib), le compilateur C++ recherche seulement dans l'emplacement que vous avez explicitement listé dans le nom de chemin de la bibliothèque, et pas dans les répertoires de bibliothèque spécifiés.

Voir aussi