Compilateur C++

De RAD Studio
Aller à : navigation, rechercher

Remonter à Construction


Projet > Options > Construction > Compilateur C++

Utilisez cette boîte de dialogue pour définir les options du compilateur C++.

Options Description

Cible, Appliquer, Enregistrer

Voir Options de la cible.

Eléments communs

Voir Eléments communs des pages Options de projet.

Options Compilation C++

Compilateur classique

Options du compilateur classique Description Commutateurs du compilateur
bcc32 bcc32c bcc64 bccx64

Utiliser le compilateur Borland 'classique'

Active le compilateur BCC32 classique ou le compilateur BCC32C amélioré par Clang comme compilateur C++ pour plates-formes Windows 32 bits. Utilisez cette option pour basculer un projet de BCC32 vers BCC32C et vice versa. Vous pouvez définir cette option sur :

  • True : BCC32 est activé en tant que compilateur C++ pour les projets qui ciblent les plates-formes Windows 32 bits.
  • False : BCC32C est activé en tant que compilateur C++ pour les projets qui ciblent les plates-formes Windows 32 bits.

Valeur par défaut = True

Plate-forme non prise en charge

Plate-forme non prise en charge

Options Compilation générale

Options Compilation générale Description Commutateurs du compilateur
bcc32 bcc32c bcc64 bccx64

Convention d'appel

Pascal
(-p)
Indique au compilateur de générer une séquence d'appel Pascal dans les appels de fonctions (non génération des soulignés, passage en majuscules, nettoyage de la pile par la fonction appelante, paramètres poussés dans la pile de la gauche vers la droite). Cela équivaut à déclarer toutes les sous-routines et fonctions avec le mot clé __pascal. Les appels de fonctions résultants sont généralement plus compacts et plus rapides que ceux opérés avec la convention d'appel C (-pc). Les fonctions doivent transmettre le nombre correct et le type des arguments. Vous pouvez utiliser le mot clé __cdecl, __fastcall ou __stdcall pour déclarer spécifiquement une fonction ou une sous-routine en utilisant une autre convention d'appel.

Plate-forme non prise en charge

Plate-forme non prise en charge

Plate-forme non prise en charge
C
(-pc)*

Indique au compilateur de générer une séquence d'appel C pour les appels de fonctions (génération de soulignés, sensibilité à la casse, paramètres poussés de la droite vers la gauche). Cela équivaut à déclarer toutes les sous-routines et fonctions avec le mot clé __cdecl. Les fonctions déclarées avec la convention d'appel C peuvent recevoir une liste variable de paramètres (le nombre de paramètres n'est pas obligatoirement fixe).
Vous pouvez utiliser le mot clé __pascal, __fastcall ou __stdcall pour déclarer spécifiquement une fonction ou une sous-routine en utilisant une autre convention d'appel. C'est la valeur par défaut.

_msfastcall
(-pm)

Indique au compilateur de substituer la convention d'appel __msfastcall pour chaque fonction n'ayant pas de convention d'appel explicitement déclarée.

Plate-forme non supportée Plate-forme non supportée Plate-forme non supportée
Fastcall (registre)

(-pr)
Force le compilateur à générer toutes les sous-routines et fonctions en utilisant la convention de passage de paramètres par registre. Cela équivaut à déclarer toutes les sous-routines et fonctions avec le mot clé __fastcall. Avec cette option activée, les fonctions ou les routines s'attendent à ce que les paramètres soient transmis dans les registres.

Vous pouvez utiliser le mot clé __pascal, __cdecl ou __stdcall pour déclarer spécifiquement une fonction ou une sous-routine en utilisant une autre convention d'appel.

stdcall
(-ps)

Indique au compilateur de générer une séquence d'appel stdcall dans les appels de fonction (non génération des soulignés, conservation de l'emploi des majuscules/minuscules, restitution de la pile par la fonction appelée, paramètres poussés de la droite vers la gauche dans la pile). Cela équivaut à déclarer toutes les sous-routines et fonctions avec le mot clé __stdcall keyword. Les fonctions doivent transmettre le nombre correct et le type des arguments.

Vous pouvez utiliser le mot clé __cdecl, __pascal ou __fastcall pour déclarer spécifiquement une fonction ou une sous-routine en utilisant une autre convention d'appel. Valeur par défaut = C (-pc)

Alignement des données

Octet
(-a1)
Ne force pas l'alignement des variables et des champs de données sur des frontières spécifiques en mémoire. Le compilateur aligne une donnée sur une adresse paire ou impaire selon la prochaine adresse disponible. Bien que l'alignement sur les frontières d'octet produise un programme plus compact, celui-ci s'exécute un peu moins rapidement. Les autres options d'alignement des données augmentent la vitesse à laquelle les processeurs 80x86 récupèrent et stockent les données.

-fpack-struct=1

N/A N/A
Word

(-a2)
Alignement des données sur 2 octets. Aligne les données non caractère sur des adresses paires. Les variables automatiques et globales sont correctement alignées. Les variables et les champs char et unsigned char peuvent être placés à une adresse quelconque ; toutes les autres données sont placées à des adresses paires.

N/A N/A
Double word

(-a4)
Alignement des données sur 4 octets. Aligne les données non caractère sur les limites de mots 32 bits (4 octets). Les données dont les tailles de type sont inférieures à 4 octets sont alignées sur la taille de leur type.

N/A N/A
Quad word

(-a8)*
Alignement des données sur 8 octets. Aligne les données non caractère sur les limites de mots 64 bits (8 octets). Les données dont la taille de type est inférieure à 8 octets sont alignées sur la taille de leur type. C'est la valeur par défaut.

N/A N/A
Paragraph

(-a16)
Alignement des données sur 16 octets. Aligne les données non caractère sur les limites 128 bits (16 octets). Les données dont la taille de type est inférieure à 16 octets sont alignées sur la taille de leur type.

Valeur par défaut = Quadruple mot (8)

N/A N/A

Désactiver le contrôle d'accès C++

Indique au compilateur de ne pas mettre en vigueur le contrôle d'accès. Ce qui signifie que le compilateur n'émet pas d'erreur si un membre privé ou protégé est accédé alors qu'il ne devrait pas être accessible. Utilisez cette option si vous avez du code qui était auparavant autorisé par BCC32, mais que BCC64 considère comme violant le contrôle d'accès (ou mieux, mettez à jour votre code conformément à la règle utilisée par BCC64). Valeur par défaut = False

Plate-forme non prise en charge

N/A

-fno-access-control

-fno-access-control

Activer la compilation groupée

Active la compilation groupée. Lorsque cette option est activée, tous les modules source sont transmis au compilateur C++ sur la même ligne de commande, au lieu d'appeler le compilateur une fois pour chaque module source. Pour les compilations groupées, les événements de construction sont générés pour la compilation groupée entière, et non pour des fichiers uniques. De même, une compilation groupée utilise un ensemble d'options de projet ; aucune redéfinition par fichier n'est autorisée. Si vous utilisez un compilateur C++ amélioré par Clang, vous pouvez utiliser l'option "Activer la compilation groupée" en combinaison avec l'option "Exécuter le compilateur C++ dans un processus distinct" pour activer la compilation parallèle. Les compilateurs améliorés par Clang pour plates-formes 32 bits arrêtent la compilation après l'échec de compilation d'un fichier. Valeur par défaut = Désactivé

Nombre maximal d'erreurs

(-j) Provoque l'arrêt de la compilation groupée après la détection du nombre spécifié d'erreurs. Vous pouvez entrer un nombre compris entre 0 et 255. Valeur par défaut = 1 Si vous entrez 0, la compilation continue jusqu'à ce que soit atteint la fin du fichier ou la limite de cet avertissement.

-j -ferror-limit N/A N/A
Avertissements maximaux

(-g) Provoque l'arrêt de la compilation groupée après la détection du nombre spécifié d'avertissements. Vous pouvez entrer un nombre compris entre 0 et 255. Valeur par défaut = 255 Si vous entrez 0, la compilation continue jusqu'à ce que soit atteint la fin du fichier ou la limite de cette erreur.

-g Plate-forme non supportée Plate-forme non supportée Plate-forme non supportée
S'arrêter sur la première erreur
(-jb)

Arrête la compilation groupée après le premier fichier ayant généré des erreurs. Par exemple :

BCC32.exe -c -gb *.ccp
BCC32.exe -c -gb file1.cpp file2.cpp

Sans l'indicateur -jb, les compilations groupées peuvent continuer sur le prochain fichier prévu, même après qu'un fichier précédent ait provoqué une erreur.

-jb Plate-forme non supportée Plate-forme non supportée Plate-forme non supportée

Informations d'erreurs étendues

Le compilateur génère davantage d'informations étendues sur les erreurs. Valeur par défaut = False

-Q

Plate-forme non prise en charge

Plate-forme non prise en charge

Plate-forme non prise en charge

Forcer la compilation C++

Provoque la compilation C++ de tous les fichiers source, quelle que soit leur extension. Valeur par défaut = False

-P

-x c++

-x c++

-x c++

Jeu d'instructions

80386
(-3)*
Génère des instructions compatibles au mode protégé 80386. C'est la valeur par défaut.

-3

Plate-forme non prise en charge

Plate-forme non prise en charge

Plate-forme non prise en charge
80486
(-4)

Génère des instructions compatibles au mode protégé i486.

Plate-forme non prise en charge Plate-forme non prise en charge Plate-forme non prise en charge
Pentium
(-5)

Génère des instructions Pentium. Cette option augmente la vitesse d'exécution de l'application sur les machines Pentium. Mais le programme sera un peu plus volumineux que celui généré avec l'option 80386 ou i486. Par ailleurs, le code compilé pour le Pentium maintient un haut niveau de performance sur les systèmes non Pentium.

Plate-forme non prise en charge Plate-forme non prise en charge Plate-forme non prise en charge
Pentium Pro
(-6)

Génère des instructions Pentium Pro.

Valeur par défaut = 80386

Plate-forme non prise en charge Plate-forme non prise en charge Plate-forme non prise en charge

Enumérations de taille entière

Alloue un mot entier (entier de 4 octets pour les programmes 32 bits) pour les types énumération (variables du type enum). Si cette option est désactivée (-bi-), le compilateur alloue l'entier le plus petit pouvant contenir les valeurs d'énumération : le compilateur alloue un unsigned char ou un signed char si les valeurs de l'énumération sont dans la fourchette de 0 à 255 (minimum) ou de -128 à 127 (maximum), ou un unsigned short ou un signed short si les valeurs de l'énumération sont dans les fourchettes de : 0..65535 ou -32768..32767. Le compilateur alloue un int sur 4 octets (32 bits) pour représenter les valeurs de l'énumération si une valeur sort des fourchettes. Valeur par défaut = True

-bi

-fshort-enums

N/A

N/A

Enumérations typées-integer

Active les énumérations de taille entière (-bi, décrit ci-dessus) et traite les énumérations comme des entiers d'un point de vue vérification du type (assouplit la vérification du type pour les énumérations).
Lorsque cette option est désactivée (-b-), le compilateur rend sizeof(enum x) aussi petit que possible et applique les règles d'énumération à la vérification du type. Valeur par défaut = False

-b

-fshort-enums

N/A

N/A

Conformité du langage

ANSI
(-A) Utilise les extensions et mots clés ANSI. Compile du code C et C++ compatible ANSI. Ce type de code offre une meilleure portabilité. Les mots clés autres que ceux du standard ANSI sont ignorés.

-fno-borland-extensions

N/A N/A
GNU
(-AG)Utilise les mots clés et les extensions de Gcc, la GNU Compiler Collection distribuée par Free Software Foundation à l'adresse http://gcc.gnu.org/. Indique au compilateur de reconnaître les mots clés et les extensions spécifiques au GNU, comme __attribute__, __const, __inline__, __signed__. Voir Attributs GNU.
Plate-forme non supportée Plate-forme non supportée Plate-forme non supportée
K & R

(-AK) Utilise les extensions et les mots clés Kernighan et Ritchie (KR). Cette option indique au compilateur de prendre en compte l'extension KR des mots clés en considérant les C++ comme des identificateurs normaux.

Plate-forme non supportée N/A N/A
Borland/CodeGear

(également -A-) (-AT)* Utilise les extensions et mots clés Borland/CodeGear/Embarcadero C++. Indique au compilateur de reconnaître les extensions Borland des mots clés du langage C, notamment near, far, huge, asm, cdecl, pascal, interrupt, _export, _ds, _cs, _ss, _es et les pseudovariables de registre ( _AX, _BX, and so on). C'est la valeur par défaut.

Plate-forme non supportée Plate-forme non supportée
Unix System V

(-AU) Utilise les extensions et les mots clés UNIX System V. Indique au compilateur de ne reconnaître que les mots clés UNIX V et de traiter les mots clés d'extension Borland/CodeGear/Embarcadero C++ comme des identificateurs normaux.

Conseil : Si des erreurs de syntaxe apparaissent dans les déclarations de votre code source, assurez-vous que cette option est bien définie sur Borland/CodeGear.

Valeur par défaut = Borland/CodeGear.

Plate-forme non supportée N/A N/A

Variables registre

Aucune
(-r-)*
Désactive l'utilisation des variables registre. Indique au compilateur de ne pas utiliser de variables registre même s'il rencontre le mot clé register. C'est la valeur par défaut.

Plate-forme non supportée Plate-forme non supportée Plate-forme non supportée
Explicit

(-rd)
Utilise les variables registre uniquement si vous utilisez le mot clé register alors qu'un registre est disponible. Utilisez cette option ou l'option Toujours (-r) pour optimiser l'usage des registres. Vous pouvez utiliser -rd dans les options #pragma.

Plate-forme non supportée Plate-forme non supportée Plate-forme non supportée
Always

(-r)
Assigne automatiquement des variables registre quand cela est possible, même si vous ne spécifiez pas une variable registre en utilisant le mot clé register. Généralement, vous pouvez utiliser Toujours, à moins que vous ne deviez effectuer l'interfaçage avec du code assembleur existant qui ne prend pas en charge les variables registre.

Valeur par défaut = Aucune

Plate-forme non supportée Plate-forme non supportée Plate-forme non supportée

Définir le nombre maximal d'erreurs à émettre avant d'arrêter (0 = pas de limite)

Pour spécifier le nombre d'erreurs autorisées pour le compilateur C++ 64 bits, sélectionnez le nombre affiché dans ce champ et tapez le nombre voulu. Valeur par défaut = 1

Plate-forme non prise en charge

N/A

-ferror-limit

-ferror-limit

Enum courte

Indique au compilateur 64 bits d'utiliser les énumérations de taille minimale. Alloue à un type d'énumération seulement autant d'octets qu'il nécessite pour l'étendue déclarée des valeurs possibles. Valeur par défaut = False

Option Enumérations de taille entière

Option Enumérations de taille entière

-fshort-enums

-fshort-enums

Cadres de pile standard

Génère un cadre de pile standard (code d'entrée et de sortie de fonction standard). C'est pratique lors du débogage car cela simplifie le pas à pas dans la pile des sous-routines appelées. Lorsque cette option est désactivée, toute fonction n'utilisant ni variables locales ni paramètres est compilée avec un code d'entrée et de sortie abrégés. Cela donne un code plus compact et plus rapide. L'option Cadres de pile standard doit toujours être activée lorsque vous compilez un fichier source à déboguer. Valeur par défaut = True

-k

Plate-forme non prise en charge

Plate-forme non prise en charge

Plate-forme non prise en charge

Pages enfant

Voir aussi