BCC32, le compilateur C++ en ligne de commande
Remonter à Utilitaires en ligne de commande - Index
Versions du compilateur C++ en ligne de commande
- Le compilateur C++ en ligne de commande pour Windows 32 bits est BCC32.EXE, décrit dans cette rubrique.
- Le compilateur croisé C++ pour Mac OS X est BCCOSX.EXE, décrit dans la rubrique BCCOSX, le compilateur croisé C++ pour OS X.
Syntaxe de la ligne de commande
bcc32 [<option>] <filename> [<filename>...]
Utilisez des espaces pour séparer le nom du compilateur, chaque option et les noms de fichier sur la ligne de commande. Placez devant chaque option un tiret (-) ou une barre oblique (/). Par exemple :
BCC32 -Ic:\code\hfiles
Vous pouvez aussi spécifier les options dans les fichiers de configuration (.CFG), décrits dans Utilisation des fichiers de configuration du compilateur (fichiers .CFG).
Vous pouvez utiliser BCC32 pour envoyer les fichiers .OBJ à ILINK32 ou les fichiers .ASM à TASM32 (si TASM32 est installé sur votre machine).
Affichage de l'aide de la ligne de commande de BCC32 pour obtenir des informations détaillées
Pour afficher l'aide de la ligne de commande de BCC32.exe dans la fenêtre cmd, incluez l'option de ligne de commande -h.
Par exemple, pour afficher la liste des options de la ligne de commande du compilateur les plus courantes, tapez :
BCC32 -h
Dans la liste affichée, * indique les options qui sont activées par défaut :
C:\>bcc32 -h
Embarcadero C++ 6.40 pour Win32 Copyright (c) 1993-2011 Embarcadero Technologies, Inc.
Options disponibles (* = valeur par défaut, xxx = a des sous-options : utilisez -h -X) :
(Remarque : -X- ou -w-XXX annule généralement ce qui a été défini ou non défini par -X ou -wXXX.
Si deux options sont en conflit, la dernière option spécifiée sera utilisée.)
--sysroot Définit le répertoire racine logique pour les en-têtes, les bibliothèques et les frameworks
(Les chemins spécifiés dans --sysinc ou --syslib et les chemins de -F qui commencent
par '/' sont préfixés avec cette valeur.)
--sysinc Définir le chemin de recherche des fichiers d'inclusion système
(si spécifié, le préfixe sysroot sera ajouté)
--syslib Définir le chemin de recherche des fichiers de bibliothèques système
(si spécifié, le préfixe sysroot sera ajouté)
--savemem Définir la mémoire SAVEMEM maximale (en Mo)
(Il s'agit de la mémoire contiguë allouée pour stocker les symboles globaux et
les constructions similaires. Les en-têtes précompilés utilisent cette mémoire.)
--version Afficher la version du compilateur
--replacehdr Remplacer le nom d'en-tête (par exemple --replaceHeader=a.h=b.h)
--xrtti Générer les informations rtti étendues
-3 Générer des instructions compatibles au mode protégé 80386
-4 Générer des instructions compatibles au mode protégé 80386/80486
-5 Générer les instructions Pentium
-6 Générer les instructions Pentium Pro
-Axxx Activer la conformité ANSI
-B Compiler en .ASM (-S), puis assembler en .OBJ
-Cxxx Activer les commentaires imbriqués
-D -D <nom> définit 'nom' comme une chaîne null, ou utilisez -D<nom>=<valeur>
-E Spécifier l'assembleur à utiliser
-G Optimiser la taille/vitesse ; utiliser -O1 et -O2 à la place
-Hxxx Générer et utiliser des en-têtes précompilés
-I Définir le chemin de recherche du fichier include
-Jxxx Options de génération des templates
-K Définir le type de caractère par défaut à non signé
-L Chemin de recherche du fichier bibliothèque
-M Créer le fichier map du lieur
-N Hodgepodge of miscellanity (voir -h -N)
-Nd Les macros obtiennent une valeur de "1" par défaut (-DX => -DX=1)
-Nt Support GNU __typeof(var)
-Nv Autoriser void& comme un type valide
-O Optimiser les sauts
-P Effectuer la compilation C++ quelle que soit l'extension du source
-Q Informations erreurs du compilateur étendues
-Rxxx Inclure les informations du navigateur dans les fichiers .OBJ générés
-S Compiler en assembleur
-T Spécifier l'option assembleur, ex. -Tx
-U Annuler les définitions de nom précédentes
-Vxxx Options de compatibilité
-W La cible est une application Windows
-X Désactiver la sortie d'auto-dépendance du compilateur
-Zd Afficher les defs globales sous forme de spéc. DocBook ; spécification : -Zd=<fichier>.c
-Zn Désactiver et/ou ne pas définir les builtins CodeGear
-Zx Générer les définitions globales dans un fichier XML.
Sous-options :
-Zx=<fichier> Emettre seulement les types/déclarations dans <fichier>
-Zxf[=fichier] Ignorer les membres de type de base
-Zxm[=fichier] Emettre les macros
-Zxp[=fichier] Emettre la position fichier et ligne
-axxx Définir les frontières d'alignement des données. Défaut : -a8; -a- signifie -a1
-b Activer -bi et traiter les enums comme des entiers, du point de vue de la vérification des types
* -bi sizeof(enum x) == sizeof(int), sauf indication contraire explicite
-c Compiler en fichier objet uniquement, ne pas lier
-d Fusionner les chaînes dupliquées
-dc Placer les chaînes dans le segment de données en lecture seule
-dw Placer les chaînes dans le segment de données (en écriture)
-e Spécifier le chemin de l'exécutable cible
* -ff Virgule flottante rapide
-fp Corriger le défaut Pentium FDIV
* -fq Utiliser l'instruction de comparaison en virgule flottante silencieuse (FUCOMP)
-g Arrêter la compilation groupée après n avertissements (par défaut 255)
-h Demande d'aide ('-h -' affiche l'ensemble de l'aide). Peut être plus spécifique : -h -V
-i Définir la longueur d'identificateur significative maximale (250 par défaut)
-j Arrêter la compilation groupée après n erreurs (valeur par défaut = 50)
* -k Générer les cadres de pile standard
-l Passer des options au lieur ; exemple : -ls -l-x
-m Générer les informations de dépendance du makefile
-md Placer les informations de dépendance dans les fichiers .d, et non dans le fichier objet
-mm Ignorer les fichiers en-tête système en générant les infos de dépendance
-mo Spécifier le fichier de sortie des informations de dépendance
-n Définir le répertoire de sortie pour les fichiers objet
-o Définir le fichier de sortie (-o<fichier> ou -o <fichier> supporté)
-pxxx Utiliser la convention d'appel Pascal
-q Supprimer la bannière d'identification du compilateur
-r Utiliser les variables registre
-rd Utiliser les variables du registre seulement quand le mot-clé register est employé
-s Lier en utilisant le lieur non incrémentiel du système
-t Spécifier l'exécutable cible
* -u Générer des traits de soulignement dans les noms de symboles
-vxxx Activer le débogage du source
-w Afficher tous les avertissements
-w! Renvoyer la valeur non-zéro du compilateur sur les avertissements
-xxxx Activer la gestion des exceptions
-y Déboguer avec les numéros de ligne
-z Options de redéfinition des noms de segment standard
Utilisez '-h <OPT>' pour obtenir de l'aide sur une option spécifique, ou
'-h -' pour voir toutes les options disponibles.
Affichage de l'aide pour des options spécifiques, des groupes tels que -Axxx et -Vxxx
Vous pouvez obtenir des informations plus spécifiques sur les options multilettres, telles que -Axxx (compatibilité du langage et conformité aux standards) et -Vxxx (compatibilité descendante).
Pour ce faire, utilisez l'option de ligne de commande -h avec la lettre initiale du groupe d'options (telle que -A pour spécifier les options -Axxx). BCC32 affichera seulement les rubriques d'aide pour le jeu d'options spécifié (tel que -Axxx, -Vxxx ou -Wxxx).
Par exemple, pour afficher une description des options -Axxx (compatibilité du langage et conformité aux standards), utilisez les options de ligne de commande -h et -A :
C:\>bcc32 -h -A Embarcadero C++ 6.40 pour Win32 Copyright (c) 1993-2011 Embarcadero Technologies, Inc. Options disponibles (* = valeur par défaut, xxx = a des sous-options : utilisez -h -X) : (Remarque : -X- ou -w-XXX annule généralement ce qui a été défini ou non défini par -X ou -wXXX. Si deux options sont en conflit, la dernière option spécifiée sera utilisée.) -A Activer la conformité ANSI -AF Utiliser les extensions et mots clés SUN Forte -AG Utiliser les extensions et mots clés GNU -AK Utiliser les mots clés et extensions Kernighan et Ritchie (K et R) -AT Utiliser les extensions et mots clés CodeGear C++ (aussi -A-) -AU Utiliser les extensions et les mots clé UNIX System V -An Utiliser les extensions et mots clés C99 -Ax Réserver les mots clés pour les futures extensions C++-0x
Paramètres par défaut
BCC32.EXE comporte des options spécifiques qui sont activées par défaut. Pour désactiver une option par défaut ou redéfinir les options d'un fichier de configuration, placez un signe moins (-) après l'option.
Les fichiers d'extension .CPP sont compilés comme des fichiers C++. Les fichiers d'extension .C, sans extension ou avec une extension différente de .CPP, .OBJ, .LIB ou .ASM sont compilés comme des fichiers C.
Le compilateur essaie de lier avec un fichier de définition de module de même nom que l'exécutable et l'extension .DEF.
Options générales de sortie du compilateur
| Option | Description | Détails |
|---|---|---|
|
|
Compile en .OBJ, pas de liaison. |
Compile et assemble les fichiers .C, .CPP et .ASM nommés, mais n'exécute pas un lien sur les fichiers .OBJ résultants. |
|
|
Spécifie le nom du fichier exécutable |
Lie le fichier en utilisant <filename> en tant que nom du fichier exécutable. Si vous ne spécifiez pas un nom d'exécutable avec cette option, le lieur crée un fichier exécutable basé sur le nom du premier fichier source ou fichier objet mentionné dans la commande. |
|
|
Passe l'option au lieur. |
Utilisez cette option de ligne de commande pour passer les options <x> au lieur dans une commande de compilation. Utilisez l'option de ligne de commande -l-x pour désactiver une option spécifique du lieur. |
|
|
Crée un fichier MAP. |
Utilisez cette option du compilateur pour demander au lieur de créer un fichier map. |
|
|
Compile en <filename>.OBJ. |
Compile le fichier source spécifié en <filename>.OBJ. |
|
|
Compilation C++ |
Provoque la compilation C++ de tous les fichiers source, quelle que soit leur extension. Utilisez l'option -P- pour compiler tous les fichiers .CPP en tant que fichiers source C++ et tous les autres fichiers en tant que fichiers source C. L'option de ligne de commande -P provoque la compilation de tous les fichiers source en tant que fichiers C++. Cette option est fournie car certains programmeurs utilisent une autre extension par défaut pour le code C++. |
|
|
Génère une cible multithread. |
Crée un .EXE ou .DLL multithread. Cette option n'est pas nécessaire si vous incluez un fichier de définition de module (fichier .DEF) dans vos commandes de compilation et de liaison, spécifiant le type d'application 32 bits que vous voulez construire. |
|
|
La cible utilise la RTL dynamique. |
Crée une application qui utilise la RTL dynamique. |
|
|
La cible utilise le framework VCL GUI. |
|
|
|
La cible est une bibliothèque partagée. |
|
|
|
Génère un package. |
Remarque : N'utilisez pas l'option -t depuis l'EDI.
Règles de priorité des options du compilateur
Les compilateurs en ligne de commande évaluent les options de la gauche vers la droite, et suivent ces règles :
- Si vous dupliquez une option (à l'exception des options -D, -I, -L ou -U), la dernière option tapée redéfinit toute option antérieure.
- Les options tapées sur la ligne de commande redéfinissent les options des fichiers de réponse et de configuration à l'exception des options -D, -I, -L et -U, qui sont cumulatives.
Spécification des répertoires dans les options de la ligne de commande
Le compilateur C++ peut rechercher les fichiers de bibliothèque et d'inclusion dans plusieurs répertoires. La syntaxe de l'option des répertoires de bibliothèque (-L) et des répertoires d'inclusion (-I) (comme l'option #define (-D)) permet plusieurs listages d'une option donnée. Voici la syntaxe de ces options :
-L <dirname> [<dirname>;...]
-I <dirname> [<dirname>;...]
Le paramètre <dirname> utilisé avec -L et -I peut correspondre à tout répertoire ou chemin de répertoire. Vous pouvez entrer ces répertoires sur la ligne de commande de l'une des façons suivantes :
- Vous pouvez empiler plusieurs entrées avec une seule option -L ou -I en les séparant par un point virgule :
BCC32.EXE -L dirname1;dirname2;dirname3 -I include1;include2;include3 myfile.c
- Vous pouvez placer plusieurs occurrences de chaque option sur la ligne de commande, comme suit :
BCC32.EXE -L dirname1 -L dirname2 -L dirname3 -I include1 -I include2 -I include3 myfile.c
- Vous pouvez mélanger les styles :
BCC32.EXE -L dirname1;dirname2 -Ldirname3 -I include1;include2 -I include3 myfile.c
Si vous listez plusieurs options -L ou -I sur la ligne de commande, le résultat est cumulatif. Le compilateur recherche tous les répertoires listés, de la gauche vers la droite.
Utilisation des fichiers de configuration du compilateur (fichiers .CFG)
Si vous utilisez de façon répétitive un certain nombre d'options, vous pouvez les lister dans un fichier de configuration au lieu de les taper continuellement sur la ligne de commande. Un fichier de configuration est un fichier texte ASCII standard qui contient une ou plusieurs options de ligne de commande. Chaque option doit être séparée par un espace ou une nouvelle ligne.
A chaque émission d'une commande de compilation, BCC32.EXE recherche le fichier de configuration BCC32.CFG. Le compilateur recherche d'abord le fichier .CFG dans le répertoire d'où provient la commande de compilation, puis dans le répertoire où se trouve le compilateur.
Vous pouvez créer et utiliser plusieurs fichiers de configuration en supplément du fichier .CFG par défaut.
Pour utiliser un fichier de configuration, utilisez la syntaxe suivante où vous placerez les options du compilateur :
+[path]filename
Par exemple, vous pouvez utiliser la ligne de commande suivante pour le fichier de configuration MYCONFIG.CFG :
BCC32 +C:\MYPROJ\MYCONFIG.CFG mycode.cpp
Les options tapées sur la ligne de commande remplacent les paramètres stockés dans les fichiers de configuration, à l'exception des options cumulatives -D, -I, -L et -U.
Utilisation des fichiers de réponse
Les fichiers de réponse vous permettent de lister les options du compilateur et les noms de fichier dans un seul fichier (à l'inverse des fichiers de configuration qui n'acceptent que les options du compilateur). Un fichier de réponse est un fichier texte au format ASCII standard contenant une ou plusieurs options de ligne de commande, les noms de fichier, ou les deux, avec chaque entrée du fichier séparée par un espace ou une nouvelle ligne. En plus de simplifier les commandes du compilateur, les fichiers de réponse permettent d'avoir une ligne de commande plus longue que ce qui est autorisé par la plupart des systèmes d'exploitation.
Voici la syntaxe d'utilisation d'un fichier de réponse unique :
BCC32 @[path]respfile.txt
Voici la syntaxe d'utilisation de fichiers de réponse multiples :
BCC32 @[path]respfile.txt @[path]otheresp.txt
Les fichiers de réponse ont typiquement une extension .RSP.
Les options tapées sur la ligne de commande redéfinissent les options ou noms de fichier d'un fichier de réponse, à l'exception des options -D, -I, -L et -U qui sont cumulatives.
Voir aussi
- Options de conventions d'appel (BCC32)
- Erreurs et avertissements du compilateur (C++) - Index
- Utilisation des fichiers d'inclusion
- Utilisation des fichiers d'en-têtes précompilés
- Compilation d'une application C++ depuis la ligne de commande
- Fichiers de définition de module
- RLINK32.DLL, le lieur de ressources (C++)
- BRCC32.EXE, le compilateur de ressources
- Options de projet du compilateur C++ (pages Options de projet)
- Modifications des options du compilateur C++ pour XE
- BCCOSX, le compilateur croisé C++ pour OS X