BCC32, le compilateur C++ en ligne de commande

De RAD Studio (Français)

Remonter à Utilitaires en ligne de commande - Index

Le compilateur C++ Embarcadero (BCC32.EXE) est un shell de compilateur de ressources. Il invoque BRCC32 et RLINK32, selon la syntaxe de la ligne de commande.

Sommaire

Syntaxe de la ligne de commande

bcc32 [option [option...}] <nomfichier> [<nomfichier>...]

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 également spécifier les options dans les fichiers de configuration (.CFG), qui sont décrites dans une section suivante.

Vous pouvez également utiliser BCC32 pour envoyer les fichiers .OBJ à ILINK32 ou les fichiers .ASM à TASM32 (si TASM32 est installé sur votre machine).

Consultez l'aide de la ligne de commande BCC32 pour obtenir des informations détaillées

Pour afficher l'aide de la ligne de commande 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

La liste affichée indique les options activées par défaut (*) :

C++ 5.92 for Win32 Copyright (c) 1993, 2009 Embarcadero
Options disponibles (* = paramètre par défaut, xxx = comporte des sous-options : utilisez -h -X) :
(Remarque : -X- ou -w-XXX annulera habituellement tout ce qui a été défini ou restauré par -X)
  -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   Active la conformité ANSI
  -B      Compiler en .ASM (-S), puis assembler en .OBJ
  -C      Activer les commentaires imbriqués
  -CP     Activer la pagination de code (pour MBCS)
  -D      -D <nom> définit 'nom' comme une chaîne null, ou utilisez -D<nom>=<valeur>
  -E      Spécifier l'assembleur à utiliser
  -G      Optimiser pour la taille/vitesse ; utilisez à la place -O1 et -O2
  -Hxxx   Générer et utiliser des en-têtes précompilés
  -I      Définit le chemin de recherche des fichiers d'inclusion
  -Jxxx   Options de génération de template
  -K      Définir le type de caractère par défaut à non signé
  -L      Chemin d'accès aux fichiers bibliothèque
  -M      Créer un fichier map du lieur
  -O      Optimiser les sauts
  -P      Effectuer la compilation C++ quelle que soit l'extension des sources
  -Q      Informations erreurs du compilateur étendues
  -R      Inclure les informations du navigateur dans les fichiers .OBJ générés
  -RF     Chercher les références au symbole
* -RT     Activer les informations de type à l'exécution
  -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é
  -Wxxx   La cible est une application Windows
  -X      Désactiver les sorties d'auto-dépendance du compilateur
  -axxx   Définir la frontière de l'alignement des données.  La valeur par défaut est -a8; -a- signifie -a1
* -b      Donner une taille entière aux énumérations (-b- les rend aussi court que possible)
  -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 (255 par défaut)
  -h      Demande d'aide ('-h -' affiche toute l'aide). Peut être 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 (Aucune par défaut)
* -k      Générer les cadres de pile standard
  -l      Passer des options au lieur ; par exemple : -ls -l-x
  -m      Générer les informations de dépendance du makefile
  -md     Placer les informations de dépendance dans des fichiers .d, pas dans le fichier objet
  -mm     Ignorer les fichiers en-tête système en générant les informations de dépendance
  -mo     Spécifier le fichier de sortie pour les informations de dépendance
  -n      Définir le répertoire de sortie pour les fichiers objet
  -o      Définir le nom du fichier de sortie (-o<nomfichier> ou —o <nomfichier> 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 registre seulement quand le mot clé register est employé
  -s      Lier en utilisant le lieur non incrémentiel du système
  -txxx   Un autre nom pour les commutateurs -Wxxx ; pas de différence
* -u      Générer des traits de soulignement dans les noms de symbole
  -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      Numéros de ligne du débogage activés
  -z      Options de redéfinition des noms de segment standard

Affichage de l'aide pour des options spécifiques, des groupes comme -Axxx et -Vxxx

Vous pouvez obtenir des informations plus spécifiques sur les options multilettres, comme -Axxx (compatibilité au 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 (comme -A pour spécifier les options -Axxx). BCC32 affichera seulement les rubriques d'aide pour le jeu d'options spécifié (comme —Axxx, —Vxxx ou —Wxxx).

Par exemple, pour afficher une description des options -Axxx (compatibilité au langage et conformité aux standards), utilisez les options de ligne de commande —h et —A :

C:\>bcc32 -h -A
C:\Documents and Settings\khouser>bcc32 -h -A
C++ 6.20 pour Win32 Copyright (c) 1993-2009 Embarcadero
Options disponibles (* = paramètre par défaut, xxx = comporte des sous-options : utilisez -h -X) :
(Remarque : -X- ou -w-XXX annulera habituellement tout ce qui a été défini ou restauré par -X)
  -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 les extensions Kernighan et Ritchie
  -AT     Utiliser les extensions et mots clés Embarcadero C++ (aussi -A-)
  -AU     Utiliser les extensions et mots clés UNIX System
  -An     Utiliser les extensions et mots clés C99
  -Ax     Utiliser les extensions et mots clés C++-0x

Dans l'exemple suivant, l'aide de la ligne de commande BCC32 affiche des détails sur toutes les options -Vxxx (compatibilité descendante) :

C:\>bcc32 -h -V
C:\Documents and Settings\khouser>bcc32 -h -V
C++ 6.20 for Win32 Copyright (c) 1993-2009 Embarcadero
Options disponibles (* = paramètre par défaut, xxx = comporte des sous-options : utilisez -h -X) :
(Remarque : -X- ou -w-XXX annulera habituellement tout ce qui a été défini ou restauré par -X)
  -V      Options de compatibilité
  -V0     Tables virtuelles C++ externes
  -V1     Tables virtuelles C++ publiques
* -VA     Générer toutes les fonctions globales dans leur propre segment virtuel/faible
  -VC     Ne pas mélanger les conventions d'appel dans les symboles
  -VF     Compatibilité MFC
  -VF3    Supporter MFC 3.2
  -VF4    Supporter MFC 4.0
* -VI     Utiliser l'algorithme de recherche Microsoft pour localiser les fichiers d'en-tête
  -VM     Compatibilité Microsoft Visual C++
  -Va     Supporter les arguments de classe de style ancien
  -Vb     Activer la compatibilité descendante avec les versions Bcc 5.8.2 et antérieures.
  -Vbc    Ne pas replier ref-to-ref et autoriser les références qualifiées
  -Vbe    Permettre  la spécialisation de template explicite de style ancien
  -Vbn    Permettre l'appel d'une fonction membre non-const ou non-volatile pour un objet const ou volatile
  -Vbo    Utiliser les anciennes règles de résolution de surcharge Borland
  -Vbr    Permettre la liaison de références non-const
  -Vbs    Traiter les littéraux chaîne en tant que non-const
  -Vbt    Utiliser les anciennes règles de type Borland pour les opérateurs ternaires
  -Vbx    Permettre la spécialisation de template explicite comme fonction membre
  -Vc     Supporter les déplacements de constructeurs
  -Vd     Utiliser les règles de portée d'instruction for C++ anciennes
  -Ve     Classes de base vides de taille nulle
  -Vg     Désactiver l'analyseur digraphe lexical
  -Vi     Utiliser l'algorithme de recherche 8.3 pour localiser les fichiers d'en-tête
  -Vl     Utiliser les anciennes dispositions de classe Borland
  -Vm     Options de pointeur membre
  -Vmd    Utiliser la plus petite représentation possible pour les pointeurs membre
  -Vmm    Supporter l'héritage multiple pour les pointeurs membre
  -Vmp    Honorer la précision déclarée des pointeurs membre
  -Vms    Supporter l'héritage unique pour les pointeurs membre
  -Vmv    Ne pas placer de restrictions sur l'endroit où les pointeurs membre peuvent pointer
  -Vn     Activer les nouveaux noms d'opérateur : and, or, and_eq, bitand, etc.
  -Vo     Définir les indicateurs de compatibilité ; utilisé avec le code ancien
  -Vp     Empiler 'this' en premier, comme en Pascal
  -Vr     Inverser l'ordre pour les constantes multicaractères
  -Vs     Utiliser la génération virdef de style ancien
  -Vt     Placer le pointeur de table virtuelle au début de la disposition d'objet
  -Vv     Utiliser les pointeurs de base virtuelle 'slow'
  -Vw     Emettre le code natif au lieu de l'Unicode pour les caractères multi-octets
  -Vx     Fonctions de membre de classe vide de longueur zéro

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
-c

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.

-e <nomfichier>

Spécifie le nom du fichier exécutable

Lie le fichier en utilisant <nomfichier> comme 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.

-l <x>

Passe l'option au lieur.

Utilisez cette option de la ligne de commande pour passer les options <x> au lieur à partir d'une commande de compilation. Utilisez l'option de la ligne de commande -l-x pour désactiver une option spécifique du lieur.

-M

Crée un fichier MAP

Utilisez cette option du compilateur pour demander au lieur de créer un fichier map.

-o <nomfichier>

Compile en <nomfichier>.OBJ

Compile le fichier source spécifié en <nomfichier>.OBJ

-P

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 comme des fichiers source C++ et tous les autres fichiers comme des fichiers source C. L'option de la ligne de commande -Pext provoque la compilation de tous les fichiers source comme des fichiers C++ en indiquant que ext est l'extension par défaut. Cette option est fournie car certains programmeurs utilisent une autre extension par défaut pour le code C++. L'option -P-ext compile les fichiers selon leur extension (.CPP est compilé en C++, toutes les autres extensions sont compilées en C) et définit l'extension par défaut (autre que .CPP).

-tWM

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.



Règles de priorité des options du compilateur

Les compilateurs de la ligne de commande évaluent les options de la gauche vers la droite, et suivent les règles suivantes :

  • 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 Embarcadero 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 <nomrépertoire> [<nomrépertoire>;...]
-I <nomrépertoire> [<nomrépertoire>;...]

Le paramètre <nomrépertoire> 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 nomrép1;nomrép2;nomrép3 —I include1;include2;include3 monfichier.c
  • Vous pouvez placer plusieurs occurrences de chaque option sur la ligne de commande :
BCC32.EXE —L nomrép1 —L nomrép2 —L nomrép3 —I include1 —I include2 —I include3 monfichier.c
  • Vous pouvez mélanger les styles :
BCC32.EXE —L nomrép1;nomrép2 —Lnomrép3 —I include1;include2 —I include3 monfichier.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 énumérer dans un fichier de configuration au lieu de les taper sans cesse 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 un retour chariot.

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 :

+[chemin]nomfichier 

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 d'avoir la liste des options du compilateur et des noms de fichiers dans un seul fichier (à l'inverse des fichiers de configuration qui ne contiennent 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 et/ou des noms de fichiers, les entrées du fichier étant séparées par des espaces ou des retours chariot. 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 seul fichier de réponse :

BCC32 @[chemin]respfile.txt

Voici la syntaxe d'utilisation de plusieurs fichiers de réponse :

BCC32 @[chemin]respfile.txt @[chemin]otheresp.txt

Les fichiers de réponse ont généralement l'extension .RSP.

Les options tapées sur la ligne de commande remplacent toute option ou nom de fichier d'un fichier de réponse, à l'exception des options -D, -I, -L et -U qui sont cumulatives.

Voir aussi

Autres langues