Options avancées du compilateur C++
Remonter à Compilateur C++
Projet > Options > Compilateur C++ > Avancées
Utilisez cette boîte de dialogue pour définir les options de compilation avancées du compilateur C++.
Options | Description |
---|---|
Cible, Appliquer, Enregistrer |
Voir Options de la cible. |
Eléments communs |
Sommaire
Options de l'assembleur
Options de l'assembleur | Description | Commutateurs du compilateur | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Options de l'assembleur |
Entrez les options d'assembleur supplémentaires (telles que Les compilateurs améliorés par Clang pour Windows 32 bits ne produisent pas de fichier d'assemblage pouvant être assemblés avec TASM32. |
N/A | Plate-forme non prise en charge | Plate-forme non prise en charge | Plate-forme non prise en charge | Plate-forme non prise en charge | Plate-forme non prise en charge | |
Compiler en .ASM, puis assembler en .OBJ |
Demande au compilateur de générer d'abord un fichier .ASM à partir de votre code source C++ ou C (identique à l'option -S de la ligne de commande). Le compilateur appelle ensuite TASM32 (ou l'assembleur spécifié par l'option Spécifier l'assembleur à utiliser) pour créer un fichier .OBJ à partir du fichier .ASM. Le fichier .ASM est ensuite supprimé. La compilation de votre programme avec l'option -B échouera si votre code source C ou C++ déclare des variables statiques globales qui sont des mots clés de l'assembleur. Ceci s'explique par le fait que le compilateur ne fait pas précéder les variables statiques globales d'un caractère de soulignement (comme il le fait avec les autres variables). Les mots clés de l'assembleur vont donc générer des erreurs lorsque le code sera assemblé. La valeur par défaut est False. |
Compiler en .ASM |
|
|
N/A |
|
|
|
Spécifier l'assembleur à utiliser |
Assemble les instructions en utilisant le nom de fichier spécifié comme assembleur. Le compilateur Windows 32 bits utilise TASM32 comme assembleur par défaut. Le bouton pop-up est décrit dans Eléments communs des pages Options de projet. |
-E |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
N/A |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Options Virgule flottante
Options Virgule flottante | Description | Commutateurs du compilateur | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Corriger le défaut FDIV |
Certains des premiers processeurs Pentium n'effectuent pas les divisions en virgule flottante avec précision. Bien que les risques de rencontrer ce problème soient faibles, ce commutateur insère le code qui émule la division en virgule flottante et assure un résultat correct. Cette option diminue les performances des instructions FDIV de votre programme. L'utilisation de cette option ne corrige que les instructions FDIV contenues dans les modules que vous compilez. La bibliothèque d'exécution contient aussi des instructions FDIV qui ne sont pas modifiées lors de la définition de ce commutateur. Pour corriger les bibliothèques d'exécution, vous devez les recompiler en utilisant ce commutateur. Les fonctions suivantes utilisent les instructions FDIV en langage assembleur et ne seront pas corrigées si vous utilisez cette option :
De plus, ce commutateur ne corrige pas les fonctions qui convertissent un nombre à virgule flottante en une chaîne, et vice versa (telles que printf ou scanf). |
-fp |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
-fp |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Virgule flottante rapide |
Les opérations en virgule flottante sont optimisées sans tenir compte des conversions de types, implicites ou explicites. Il en résulte des temps de réponse parfois plus rapides qu'en mode d'exploitation ANSI. Le but de cette option est de permettre certaines optimisations techniquement contraires à l'usage correct de la sémantique C. double x; x = (float) (3.5*x);
Afin d'exécuter cela correctement, x est multiplié par 3.5, donne un double qui sera tronqué pour cause de précision flottante, puis stocké en x en tant que double. Avec les opérations en virgule flottante rapides, le double long est directement converti en double. Comme très peu de programmes risquent de souffrir de la perte de précision résultant de ce passage par un type virgule flottante plus court, l'option Virgule flottante rapide est activée par défaut. Quand cette option est désactivée (-ff-), le compilateur respecte strictement les règles ANSI de conversion des nombres à virgule flottante. |
-ff |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
-ff |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Comparaisons en virgule flottante silencieuses |
Utilise l'instruction en virgule flottante silencieuse (FUCOMP). La valeur par défaut est True. |
-fq |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
-fq |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Fonctions mathématiques requises pour indiquer les erreurs |
Cette option indique au compilateur que les programmes peuvent tester |
Plate-forme non prise en charge |
-fmath-errno |
-fmath-errno |
Plate-forme non prise en charge |
-fmath-errno |
-fmath-errno |
-fmath-errno |
Autres options
Autres options | Description | Commutateurs du compilateur | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Autres options à transmettre au compilateur |
Entrez les options de compilation supplémentaires que vous souhaitez ajouter pour le projet en cours. |
|||||||
Page de code |
Définit le jeu de caractères texte par défaut qui est utilisé dans le code source ANSI si le code source ne contient pas un BOM (byte order mark). Active la prise en charge des pages de codes définies par l'utilisateur. Son usage premier est d'indiquer au compilateur comment analyser et convertir les chaînes de caractères multi-octets (MBCS, Multi-Byte Character Strings). Dans le champ d'entrée, vous pouvez spécifier l'un des éléments suivants :
Par exemple, si vous spécifiez 65001 ou UTF8 pour l'option -CP, le compilateur prend en charge l'encodage UTF8 pour le code source sans BOM. Il y a deux zones distinctes où les pages de codes sont utilisées :
Syntaxe Activez l'utilisation des pages de codes avec le commutateur de ligne de commande suivant :
Dans cette syntaxe, nnnn est la valeur numérique de la page de code nécessaire à votre langue locale spécifique.
La valeur par défaut est la non utilisation d'une page de code. |
-CP |
-finput-charset=0 |
N/A |
-CP |
N/A |
N/A |
N/A |
Jeu de caractères d'exécution |
Définit le jeu de caractères d'exécution, qui est utilisé pour les chaînes ANSI du fichier exécutable. L'option Jeu de caractères d'exécution est conçue pour être utilisée avec les applications multi-périphériques. Si vous compilez une application avec "932" comme Jeu de caractères d'exécution, tous les littéraux chaîne sont compilés sous l'encodage "932" (SJIS japonais), que l'environnement de compilation soit "932", ou pas. Les littéraux chaîne étendue (par exemple L"Test") ne sont pas affectés par cette option. Dans certaines instances, la valeur de l'option Page de code est utilisée pour l'option Jeu de caractères d'exécution. La matrice suivante représente la relation entre les options Page de code et Jeu de caractères d'exécution : |
-CE |
-fexec-charset=0 |
N/A |
-CE |
N/A |
N/A |
N/A |
Taille de bloc d'allocation mémoire contiguë minimale |
Spécifie la taille minimale utilisée pour l'allocation mémoire contiguë. La valeur par défaut est (no =nMo), c'est-à-dire l'utilisation du plus grand segment possible. Par exemple, vous pouvez définir cette option pour la compilation de gros projets qui n'utilisent pas PCH ou de très gros fichiers source (probablement générés par la machine), ceux ayant beaucoup de code inclus amenant de nombreuses déclarations par fichier. |
-savemem |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
-savemem |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Type char non signé |
Le compilateur traite les déclarations char comme si elles étaient de type unsigned char afin d'assurer la compatibilité avec d'autres compilateurs. |
-K |
-funsigned-char |
N/A |
-K |
N/A |
N/A |
N/A |
Générer le fichier binaire universel iOS (armv7 + arm64) |
Le compilateur crée un fichier binaire universel pour iOS 32 bits et 64 bits. |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Options du source
Options du source | Description | Commutateurs du compilateur | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Activer les commentaires imbriqués |
Imbrique les commentaires dans vos fichiers source C et C++. Les commentaires imbriqués ne sont pas autorisés dans les implémentations C standard, et ils ne sont pas portables.
|
-C |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
-C |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Longueur d'identificateur |
Spécifie le nombre de caractères significatifs (ceux reconnus par le compilateur) d'un identificateur. Excepté dans C++, qui reconnaît les identificateurs de longueur illimitée, tous les identificateurs sont traités comme distincts seulement si leurs caractères significatifs sont distincts. Cette règle s'applique aux variables, aux noms de macros du préprocesseur, et aux noms des membres de structures. Les nombres valides pour la longueur sont 0, et de 8 à 250, où 0 indique la longueur d'identificateur maximale de 250. Par défaut, C++Builder utilise 250 caractères par identificateur. D'autres systèmes (notamment certains compilateurs UNIX) ignorent les caractères situés après les huit premiers. Si vous effectuez un portage vers d'autres environnements, vous pouvez compiler votre code avec un nombre de caractères significatifs plus faible, ceci afin de repérer les conflits de noms qui pourraient être induits par des identificateurs longs tronqués. La valeur par défaut est 250. |
-i |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
-i |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Plate-forme non prise en charge |
Options de chaînes
Options de chaînes | Description | Commutateurs du compilateur | ||||||
---|---|---|---|---|---|---|---|---|
bcc32 | bcc32c | bcc64 | bccosx | bcciosarm | bcciosarm64 | bccaarm | ||
Fusionner les chaînes dupliquées |
Fusionne deux chaînes littérales quand les deux se correspondent. Cela produit des programmes plus compacts, en contrepartie d'un temps de compilation plus long, mais peut introduire des erreurs si vous modifiez une chaîne. |
-d |
-fmerge-all-constants |
N/A |
-d |
N/A |
N/A |
N/A |
Chaînes en lecture seule |
Place la mémoire allouée pour les chaînes dans le segment de données en lecture seule. La valeur par défaut est False. |
-dc |
-fconst-strings |
N/A |
-dc |
N/A |
N/A |
N/A |
Chaînes en écriture |
Place la mémoire allouée pour les chaînes dans le segment de données en écriture. |
-dw |
-fwritable-strings |
N/A |
-dw |
N/A |
N/A |
N/A |
Voir aussi
- C++ (options partagées)
- BCC32C.EXE
- BCC32, le compilateur C++ pour Windows 32 bits
- BCC64, le compilateur C++ pour Windows 64 bits
- BCCOSX, le compilateur C++ pour OS X
- BCCIOSARM, le compilateur C++ pour le périphérique iOS 32 bits
- BCCIOSARM64, le compilateur C++ pour le périphérique iOS 64 bits
- BCCAARM, le compilateur C++ pour Android