C++Builder comprend BCC32.EXE, le compilateur en ligne de commande Borland C++.
Syntaxe du compilateur en ligne de commande
La syntaxe pour BCC32 est :
BCC32 [option [option...]] fichier [fichier...]
Où :
Les éléments entre parenthèses sont facultatifs.
option se réfère aux options de la ligne de commande.
filename se réfère aux fichiers de code source que vous voulez compiler.
Pour avoir la liste des options couramment utilisées par le compilateur, tapez BCC32 au niveau de la ligne de commande (sans option ou non de fichier), puis appuyez sur Entrée. Les options disponibles par défaut sont alors affichées.
Le nom du compilateur en ligne de commande, les options et les noms de fichiers doivent être séparés par au moins un espace. Chaque option doit être précédée d'un trait d'union hyphen (-) ou d'une barre oblique (/). Par exemple :
BCC32 -Ic:\code\hfiles
Les options et noms de fichiers saisis sur la ligne de commande remplacent ceux initialisés dans les fichiers de configuration.
Vous pouvez utiliser BCC32 pour envoyer les fichiers .OBJ à ILINK32 ou les fichiers .ASM à TASM32 (si TASM32 est installé sur votre machine).
Paramètres par défaut
BCC32.EXE possède des options par défaut. Pour invalider ces options ou les remplacer dans un fichier de configuration, faites suivre les options du signe moins (-).
Les fichiers avec l'extension .CPP sont compilés comme des fichiers C++. Les fichiers ayant une extension .C, sans extension, ou différente de .CPP, .OBJ, .LIB, ou .ASM sont compilés comme des fichiers C.
Les compilateurs essayent de lier avec un fichier de définition de module ayant le même nom que l'exécutable.
Le tableau suivant est la liste alphabétique des options du compilateur C++Builder :
Option Description
@<nomfichier> Lit les options du compilateur dans le fichier de réponse nomfichier
+<nomfichier> Utilise le fichier secondaire de configuration du compilateur nomfichier
-3 Génère les instructions compatibles avec le mode protégé du 80386 (Défaut)
-4 Génère les instructions compatibles avec le mode protégé du 80386/80486
-5 Génère les instructions Pentium
-6 Génère les instructions Pentium Pro
-A Utilise les mots clés et les extensions ANSI
-AK Utilise les mots clés et les extensions Kernighan et Ritchie
-AT Utilise les mots clés et les extensions Borland C++ (également -A-)
-AU Utilise les mots clés et les extensions UNIX V
-a Alignement de données par défaut (-a8 )*; -a- utilise l'alignement sur un octet (-a1)
-an Aligne les données sur les frontières n , où 1=octet, 2=mot (2 octets), 4=mot*double (4 octets), 8=mot quadruple (8 octets), 16=paragraphe (16 octets) (Défaut : -a8 )
-B Compile en .ASM (-S), puis appelle l'assembleur pour générer un .OBJ
-b Les enums ont toujours la taille des entiers (Défaut : -b les enums ont la taille d'un entier)
-b- les enums ont la taille d'un octet si possible
-C Active les commentaires imbriqués (Défaut : -C- désactive les commentaires imbriqués)
-CP Active les pages de code (pour le MBCS)
-c Compilation en .OBJ, pas de liaison
-D<nom> Définit "nom" par la chaîne nulle
-D<nom=chaîne> Définit "nom" par la chaîne "chaîne"
-d Fusionne les chaînes dupliquées
-d- Ne fusionne pas les chaînes dupliquées (Défaut)
-E<nomfichier> Spécifie l'assembleur
-e<nomfichier> Spécifie le nom du fichier exécutable
-f Emule la virgule flottante
-f- Pas de virgule flottante
-ff Virgule flottante rapide
-fp Corrige l'erreur FDIV du Pentium
-gb Arrête la compilation par lot après le premier fichier ayant généré des avertissements (désactivé par défaut)
-gn Avertissements : arrêt après n messages (Défaut : 255)
-G, -G- Optimise pour la taille/vitesse ; utilisez à la place ? O1 et ? O2
-H Génère et utilise les en-têtes précompilés
-H- Ne génère pas et n'utilise pas les en-têtes précompilés (Défaut)
-H=<nomfichier> Définit le nom de fichier des en-têtes précompilés.
-H"xxx" Arrête les précompilations après le fichier xxx
-Hc Cache les en-têtes précompilés (s'utilise avec -H ou -H"xxx"
-He Types externes supportés pour les fichiers en-tête précompilés (Défaut)
-Hh=xxx Arrête les précompilations après le fichier xxx
-Hs Met en mémoire cache "intelligente" les fichiers en-tête précompilés (Défaut)
-Hu Utilise les en-têtes précompilés, mais ne les génère pas
-I<chemin> Définit le chemin d'accès aux répertoires des fichiers inclus
-in Définit n comme taille significative des identificateurs (Défaut : 250)
-Ja Développe tous les membres modèle y compris les membres inutilisés
-jb Arrête la compilation par lot après le premier fichier ayant généré des erreurs (désactivé par défaut)
-Jgd Génère des définitions pour toutes les instances de modèles et fusionne les chaînes dupliquées (Défaut)
-Jgx Génère des références externes pour toutes les instances de modèles
-jn Erreurs*: arrêt après n messages (Défaut : 25)
-K Type caractère non signé par défaut (Défaut : -K- = type caractère signé par défaut)
-k Active le cadre de pile standard (Défaut)
-L<chemin> Définit le chemin d'accès aux fichiers bibliothèque
-lx Transmet l'option x au lieur
-l-x Désactive l'option x du lieur
-M Crée un fichier map
-n<chemin> Définit chemin comme répertoire de sortie
-O Optimise les branchements
-O1 Génère le code le plus compact possible
-O2 Génère le code le plus rapide possible
-Oc Elimine les expressions dupliquées dans les blocs de base et les fonctions
-Od Désactive toutes les optimisations
-Oi Développe les fonctions intrinsèques communes
-OS Ordonnancement d'instructions pour le Pentium
-O-S Désactive l'ordonnancement d'instructions
-Og Optimise pour la vitesse ; utilisez à la place ?O2
-Os Optimise pour la vitesse ; utilisez à la place ?O2
-Ot Optimise pour la taille ; utilisez à la place ?O1
-Ov Permet les variables d'induction de boucles et la réduction de puissance
-Ox Optimise pour la vitesse ; utilisez à la place ?O2
-o<nomfichier> Compile nomfichier en .OBJ
-P Effectue une compilation C++ quelle que soit l'extension du fichier source
-P- Effectue une compilation C++ selon l'extension du fichier source
-P<ext> Effectue une compilation C++ avec ext comme extension par défaut
-p Utilise la convention d'appel du Pascal
-p- Utilise la convention d'appel du C
-pc Utilise la convention d'appel du C (Défaut : -pc, -p-)
-pm Fonctions sans convention d'appel explicite pour utiliser __msfastcall
-pr Utilise la convention d'appel fastcall pour transmettre les paramètres aux registres
-ps Utilise la convention d'appel stdcall
-Q Informations d'erreur du compilateur étendues (désactivé par défaut)
-q Supprime la bannière d'identification du compilateur (désactivé par défaut)
-R Inclut les informations du browser dans les fichiers .OBJ générés
-RT Active les informations d'identification des types à l'exécution (Défaut)
-r Utilise les variables registre automatiques (Défaut)
-r- Désactive l'utilisation des variables registre
-rd Utilise les variables registre uniquement quand le mot clé register est employé
-S Compilation en .ASM
-T- Supprime toutes les options précédentes de l'assembleur
-Tx Transmet l'option x à l'assembleur
-tW La cible est une application Windows (identique à -W)
-tWC La cible est une application console (identique à -WC)
-tWD Génère un exécutable .DLL (identique à -WD)
-tWM Génère un fichier exécutable 32 bits multithread (identique à -WM)
-tWR La cible utilise la RTL dynamique (identique à -WR)
-tWV La cible utilise la VCL
-U<nom> Annule toute définition précédente de nom
-u Génère des caractères de soulignement (Défaut)
-V Utilise les tables virtuelles intelligentes de C++ (Défaut)
-V0 Tables virtuelles C++ externes
-V1 Tables virtuelles C++ publiques
-VC Compatibilité aux conventions d'appel
-Vd Portée des variables de boucle for
-Ve Classes de base vides de taille nulle
-VM Compatibilité Microsoft Visual C++
-VI- Utilise l'ancien algorithme de recherche Borland pour localiser les fichiers en-tête (recherche d'abord dans le répertoire de travail en cours)
-Vl Utilise l'ancien style des structures Borland C++ (pour la compatibilité avec les versions précédentes de BCC32.EXE)
-VF Compatibilité MFC
-Vmd Utilise la plus petite représentation possible des pointeurs sur membres
-Vmm Gère l'héritage multiple pour les pointeurs sur membres
-Vmp Pointeurs sur membres de précision déclarée d'honneur
-Vms Gère l'héritage simple pour les pointeurs sur membres
-Vmv Ne place aucune restriction sur ce que peuvent pointer les pointeurs sur membres (Défaut)
-Vx Fonctions membre de classe vide de taille nulle
-v Active le débogage du source
-vG Toutes les options Codeguard activées
-vGc Accès au pointeur en ligne (Codeguard)
-vGd Accès aux données globales et de la pile (Codeguard)
-vGt pointeur this sur une entrée de fonction membre (Codeguard)
-vi Contrôle le développement des fonctions en ligne
-W La cible est une application Windows (identique à -tW)
-WC La cible est une application console (identique à -tWC)
-WD Génère un exécutable .DLL (identique à -tWD)
-WM Génère une cible 32 bits multithread (identique à -tWM)
-WR La cible utilise la RTL dynamique (identique à -tWR)
-WU Génère une application Unicode
-w Active l'affichage des avertissements
-w! Renvoie un code de retour différent de zéro lorsqu'il existe des avertissements
-wxxx Active le message d'avertissement xxx
-w-xxx Désactive le message d'avertissement xxx
-wmsg Messages définis par l'utilisateur
-X Désactive les informations d'auto-dépendance du compilateur (Défaut : -X- active les informations d'auto-dépendance du compilateur)
-x Active la gestion d'exception (Défaut)
-xd Autorise le nettoyage des destructeurs (Défaut)
-xdg Utilise le compteur de destructeurs global (pour la compatibilité avec les versions précédentes de BCC32.EXE)
-xf Active les prologues rapides des exceptions
-xp Active les informations sur l'emplacement de l'exception
-xs Active les épilogues lents des exceptions
-xv Fait cacher par le compilateur des variables de gestion d'exceptions spéciales afin que les variables de même nom soient utilisables.
-y Génère les numéros de ligne pour le débogage
Options des messages (liste alphabétique)
Option Numéro (Alias) Message d'avertissement
-w-ali -w-8086 Utilisation incorrecte de #pragma alias ?nomAlias? = ?nomSubstitution? (Défaut)
-wamb -w8000 Les opérateurs ambigus requièrent des parenthèses (désactivé par défaut)
-wamp -w8001 & superflus avec fonction (désactivé par défaut)
-w-asc -w-8002 Relancer la compilation avec l'assembleur (Défaut)
-wasm -w8003 Instruction assembleur inconnue (désactivé par défaut)
-w-aus -w-8004 La valeur affectée à 'identificateur' n'est jamais utilisée (Défaut)
-wbbf -w8005 Les champs bit doivent être des entiers signés ou non signés (désactivé par défaut)
-w-bei -w-8006 Initialisation de 'identificateur' avec 'identificateur' (Défaut)
-w-big -w-8007 La valeur hexadécimale contient plus de trois chiffres (Défaut)
-w-ccc -w-8008 La condition est toujours vraie OU toujours fausse (Défaut)
-wcln -w8009 La constante est longue (désactivé par défaut)
-w-cod -w-8093 Utilisation incorrecte de #pragma codeseg (Défaut)
-w-com -w-8010 Caractère de continuation \ trouvé dans un commentaire // (Défaut)
-w-cpt -w-8011 Comparaison de pointeur non portable (Défaut)
-w-csu -w-8012 Comparaison de valeurs signées et non signées (Défaut)
-wdef -w8013 Utilisation possible de 'identificateur' avant sa définition (désactivé par défaut)
-w-dig -w-8014 Déclaration ignorée (Défaut)
-w-dpu -w-8015 Déclarez 'type' avant de l'utiliser dans un prototype (Défaut)
-w-dsz -w-8016 Taille de tableau pour ''delete'' ignorée (Défaut)
-w-dup -w-8017 La redéfinition de 'macro' n'est pas identique (Défaut)
-w-eas -w-8018 Affectation de 'type' à 'enum' (Défaut)
-w-eff -w-8019 Le code n'a pas d'effet (Défaut)
-w-ext -w-8020 'identificateur' est déclaré à la fois comme external et static (Défaut)
-w-hch -w-8021 Gestionnaire pour 'type1' caché par gestionnaire précédent pour 'type2' (Défaut)
-w-hid -w-8022 'fonction1' cache la fonction virtuelle 'fonction2' (Défaut)
-w-ias -w-8023 La variable tableau ''identificateur'' est near (Défaut)
-w-ibc -w-8024 La classe de base 'classe1' est aussi la classe de base de 'classe2' (Défaut)
-w-ifr -w-8085 Fonction 'fonction' redéfinie comme non-en ligne (Défaut)
-w-ill -w-8025 Pragma mal formulé (Défaut)
-w-inl -w-8026 Les fonctions ne sont pas développées en ligne (Défaut)
-w-inl -w-8027 Les fonctions contenant des mots réservés ne sont pas développées en ligne (Défaut)
-w-lin -w-8028 Temporaire utilisé pour initialiser 'identificateur' (Défaut)
-w-lvc -w-8029 Temporaire utilisé pour le paramètre 'param' (Défaut)
-w-lvc -w-8030 Temporaire utilisé pour le paramètre 'param' dans l'appel à 'fonction' (Défaut)
-w-lvc -w-8031 Temporaire utilisé pour le paramètre nombre (Défaut)
-w-lvc -w-8032 Temporaire utilisé pour le paramètre nombre dans l'appel à 'fonction' (Défaut)
-w-mcs -w-8096 Utilisation incorrecte de #pragma code_seg (Défaut)
-w-mes -w-8095 Utilisation incorrecte de #pragma message (Défaut)
-w-mpc -w-8033 La conversion en 'type' va échouer pour les membres de la base virtuelle 'base' (Défaut)
-w-mpd -w-8034 Précision maximum utilisée pour le type pointeur membre 'type' (Défaut)
-w-msg -w-8035 Avertissements définis par l'utilisateur (Défaut)
-wnak -w8036 Non-ANSI utilisé : 'motclé' (désactivé par défaut) (Remarque : l'utilisation de cette option est nécessaire pour se conformer à la norme ANSI)
-w-ncf -w-8037 Fonction non const 'fonction' appelée pour un objet const (Défaut)
-w-nci -w-8038 Le membre constante 'identificateur' n'est pas initialisé (Défaut)
-w-ncl -w-8039 Liste d'initialiseur de constructeur ignorée (Défaut)
-w-nfd -w-8040 Corps de fonction ignoré (Défaut)
-w-ngu -w-8041 Valeur non signée rendue négative (Défaut)
-w-nin -w-8042 Initialiseur pour l'objet 'identificateur' ignoré (Défaut)
-w-nma -w-8043 Définition de macro ignorée (Défaut)
-w-nmu -w-8044 Directive #undef ignorée (Défaut)
-wnod -w8045 Pas de déclaration pour la fonction 'fonction' (désactivé par défaut)
-w-nop -w-8046 Option pragma pop sans option correspondante push (Défaut)
-w-npp -w-8083 'Pragma pack pop' sans 'pack push' correspondant (Défaut)
-w-nsf -w-8047 Déclaration de la fonction statique 'fonction(...)' ignorée (Défaut)
-w-nst -w-8048 Utilisez un nom qualifié pour accéder au type membre 'type' (Défaut)
-w-ntd -w-8049 Utilisez '> >' pour les modèles imbriqués au lieu de '>>' (Défaut)
-w-nto -w-8050 Aucun fichier de types OBJ présent. Désactivation de l'option types externes. (Défaut)
-w-nvf -w-8051 Fonction non volatile 'fonction' appelée pour un objet volatil (Défaut)
-w-obi -w-8052 Initialisation de base sans nom de classe est maintenant obsolète (Défaut)
-w-obs -w-8053 'identificateur' obsolète (Défaut)
-w-ofp -w-8054 Le style de définition de fonction est maintenant obsolète (Défaut)
-w-onr -w-8097 Toutes les options ne peuvent être restaurées pour l'instant (Défaut)
-w-osh -w-8055 Débordement possible dans une opération shift (Défaut)
-w-ovf -w-8056 Débordement arithmétique d'entiers (Défaut)
-w-par -w-8057 Paramètre 'paramètre' jamais utilisé (Défaut)
-w-pch -w-8058 Impossible de créer un en-tête précompilé : 'en-tête' (Défaut)
-w-pck -w-8059 La taille de la structure a changé (Défaut)
-w-pcm -w-8094 Utilisation incorrecte de #pragma comment (Défaut)
-w-pia -w-8060 Affectation incorrecte possible (Défaut)
-wpin -w8061 L'initialisation est partiellement entre accolades (désactivé par défaut)
-w-pow -w-8062 Options et avertissements précédents non restaurés (Défaut)
-w-prc -w-8084 Proposition d'utiliser des parenthèses pour clarifier les priorités (Défaut)
-w-pre -w-8063 Opérateur de préfixe surchargé 'opérateur' utilisé comme un opérateur de suffixe (Défaut)
-w-pro -w-8064 Appel à la fonction 'fonction' sans prototype (Défaut)
-w-pro -w-8065 Appel à la fonction 'fonction' sans prototype (Défaut)
-w-rch -w-8066 Code inatteignable (Défaut)
-w-ret -w-8067 Instructions de renvoi avec et sans valeur utilisées (Défaut)
-w-rng -w-8068 Constante hors limites dans la comparaison (Défaut)
-w-rpt -w-8069 Conversion de pointeur non portable (Défaut)
-w-rvl -w-8070 La fonction doit renvoyer une valeur (Défaut)
-wsig -w8071 La conversion peut perdre des chiffres significatifs (désactivé par défaut)
-w-spa -w-8072 Arithmétique de pointeur suspecte (Défaut)
-w-stl -w-8087 'opérateur==' doit être visible publiquement pour être contenu par un nom 'nom' (désactivé par défaut)
-w-stl -w-8089 'opérateur<' doit être visible publiquement pour être contenu par un nom 'nom' (désactivé par défaut)
-w-stl -w-8090 'opérateur<' doit être visible publiquement pour être utilisé par un nom 'nom' (désactivé par défaut)
-w-stl -w-8091 L'argument 'type' 'argument' passé à 'fonction' est un itérateur de 'type'. Itérateur de 'type' requis (désactivé par défaut)
-w-stl -w-8092 L'argument 'type' 'argument' passé à 'fonction' n'est pas un itérateur. Itérateur de 'type' requis (désactivé par défaut)
-wstu -w8073 Structure 'structure' non définie (désactivé par défaut)
-wstv -w8074 Structure passée par valeur (désactivé par défaut)
-w-sus -w-8075 Conversion de pointeur suspecte (Défaut)
-w-tai -w-8076 L'instance de modèle 'instance' est déjà instanciée (Défaut)
-w-tes -w-8077 Spécialiser explicitement le membre d'une classe explicitement spécialisée est insensé (Défaut)
-w-thr -w-8078 L'expression Throw viole la spécification d'exception (Défaut)
-wucp -w8079 Mélange de pointeurs de plusieurs types 'char' (désactivé par défaut)
-wuse -w8080 'identificateur' est déclaré mais jamais utilisé (désactivé par défaut)
-w-voi -w-8081 Les fonctions void ne doivent pas renvoyer de valeur (Défaut)
-w-zdi -w-8082 Division par zéro (Défaut)
|