BCCOSX, le compilateur croisé C++ pour OS X
Remonter à Utilitaires en ligne de commande - Index
Le compilateur croisé C++ pour la plate-forme Macintosh OS X est BCCOSX.EXE, et il partage sa base de code avec BCC32.EXE. Vous devez utiliser BCCOSX au lieu de BCC32 si vous voulez créer une application multiplate-forme.
Sommaire |
BCCOSX est étroitement associé à BCC32
En général, l'utilisation de BCCOSX est identique à celle de BCC32.EXE (le compilateur C++ Windows-seulement), à l'exception des options suivantes, spécifiques à la plate-forme, pour Mac OS X :
-
--frameworket-F -
--sysinc(chemins d'inclusion) -
--syslib(chemins de bibliothèques) -
--sysroot(racine système) -
-txxx(options de la cible)
Comme les deux compilateurs partagent une base de code, la syntaxe de la commande pour le compilateur croisé BCCOSX ne comporte que quelques différences par rapport à la syntaxe pour BCC32.
BCCOSX ne supporte pas la gestion des exceptions structurées (spécifique à Windows).
Syntaxe de la ligne de commande
bccosx [option [option...}] <nomfichier> [<nomfichier>...]
Utilisez des espaces pour séparer le nom du compilateur, chaque option et les noms de fichiers sur la ligne de commande. Placez devant chaque option un tiret (-) ou une barre oblique (/). Par exemple :
BCCOSX -Ic:\code\hfiles
Vous pouvez aussi spécifier les options dans les fichiers de configuration (.CFG), qui sont décrits dans une section suivante, Fichier BCCOSX.CFG.
Vous pouvez utiliser BCCOSX pour envoyer les fichiers .O à XLINK. BCCOSX peut aussi générer du code assembleur (voir l'option -S), mais nous ne fournissons pas un assembleur pour Mac OS X.
Affichage de l'aide de la ligne de commande de BCCOSX pour obtenir des informations détaillées
Pour afficher l'aide de la ligne de commande de BCCOSX.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 :
BCCOSX -h
La liste affichée indique les options activées par défaut (*) :
Embarcadero C++ 6.40 pour OS X 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é)
--framework Spécifie un framework Mac OS X à lier (par exemple, --framework=Carbon)
--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
-F Ajouter le répertoire spécifié au chemin de recherche d'en-tête de framework
Par exemple, -F/System/Library/Frameworks;/Library/Frameworks
REMARQUE : Si --sysroot est spécifié, les chemins commençant par '/' sont précédés de la valeur --sysroot.
-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é
-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:\>bccosx -h -A Embarcadero C++ 6.40 pour OS X 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
Dans l'exemple suivant, l'aide de la ligne de commande BCCOSX affiche des détails sur toutes les options -Vxxx (compatibilité descendante) :
C:\>bccosx -h -V Embarcadero C++ 6.40 pour OS X 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.) -V Options de compatibilité * -VA Générer toutes les fonctions globales dans leur propre segment virtuel/faible -VC Ne pas substantyper la convention 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 les fichiers en-tête -VM Compatibilité Microsoft Visual C++ * -VP Génération de code PIC -Va Supporter les arguments de classes de style ancien -Vb Activer la compatibilité avec les versions 5.8.2 de Bcc et antérieures -Vbc Ne pas réduire la référence ou le pointeur à la référence, ou la référence qualifiée -Vbe Autoriser l'ancienne spécialisation de template explicite -Vbi Suivre les règles C89 -Vbn Autoriser l'appel d'une fonction membre non const ou non volatile pour un objet const ou volatile -Vbo Utiliser les règles de l'ancienne résolution de surcharge Borland -Vbr Autoriser les anciennes règles Borland pour la liaison de références -Vbs Traiter les littéraux chaîne comme non-const -Vbt Utiliser les anciennes règles Borland de type pour les opérateurs ternaires -Vbu Utiliser les anciennes règles Borland pour 'using' dans les templates -Vbx Autoriser la spécialisation de template explicite comme une fonction membre -Vc Supporter les déplacements de constructeurs -Vd Utiliser des règles de portée d'instruction for C++ anciennes -Ve Classes de base vides de longueur zéro -Vg Désactiver l'analyseur digraphe lexical -Vi Utiliser l'ancien algorithme de recherche 8.3 pour localiser les fichiers 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 Pas de restrictions là où peuvent pointer les pointeurs membre -Vn Activer les nouveaux noms d'opérateurs : and, or, and_eq, bitand, etc. -Vo Définir tous 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 -Vt Placer le pointeur de table virtuelle au début de la disposition d'objet -Vv Utiliser les pointeurs de base virtuels 'slow' -Vw Emettre le code natif au lieu d'Unicode pour les caractères multi-octets -Vx Membres de classe vides de longueur zéro
Chemins d'inclusion (-I, --sysinc)
BCCOSX résout les directives include en cherchant les fichiers spécifiés dans les chemins d'inclusion standard, suivis par les chemins d'inclusion distants.
Les chemins distants sont relatifs à $(SYSROOT).
$(SYSROOT) est un répertoire Windows qui représente la racine logique de la machine Mac OS X. Dans cet emplacement sont copiés (mis en cache) les fichiers d'en-tête et les bibliothèques dynamiques nécessaires à la compilation et à la liaison (voir Paclient.exe).
Les chemins d'inclusion peuvent être contrôlés avec les options suivantes :
|
Option |
Type du chemin d'inclusion |
Description |
|---|---|---|
|
|
standard |
Définit le chemin de recherche des fichiers d'inclusion standard |
|
|
distant |
Définit le chemin de recherche des fichiers d'inclusion système (distants). |
Les chemins distants sont traités après les chemins standard.
BCCOSX suppose que les directives include de la forme #include </...> (crochets angulaires, chemins commençant par une barre oblique) se réfèrent à l'emplacement $(SYSROOT).
Les chemins d'inclusion les plus courants sont décrits dans le tableau suivant :
|
Type du chemin d'inclusion |
Chemin |
Description |
|---|---|---|
|
standard |
|
Ce répertoire contient les fichiers d'en-tête RTL C/C++ (.h) fournis par RAD Studio. Certains de ces fichiers incluent les fichiers d'en-tête C/C++ de |
|
|
Ce répertoire contient les fichiers d'en-tête (.hpp) générés par la machine Delphi RTL. | |
|
distant |
|
Ce répertoire contient les fichiers d'en-tête Mac OS X RTL C/C++ mis en cache sur Windows. |
Pour définir les chemins d'inclusion depuis RAD Studio, voir Répertoires et Conditions du compilateur C++ (pour les chemins d'inclusion standard) et Panneau Profils distants (pour les chemins d'inclusion distants).
Chemins de bibliothèques (-L, --syslib)
|
Option |
Type du chemin d'inclusion |
Description |
|---|---|---|
|
|
standard |
Chemin de recherche des fichiers de bibliothèques. |
|
|
distant |
Chemin de recherche des fichiers de bibliothèques relatif à |
Les chemins standard et les chemins distants des fichiers de bibliothèques sont traités dans l'ordre spécifié. Vous pouvez ainsi contrôler votre chemin de recherche des bibliothèques en entrelaçant les options -L et --syslib pour le compilateur.
Racine système (--sysroot)
SYSROOT est un répertoire de la machine Windows qui représente la racine logique de la machine distante/cible. Ce répertoire est l'endroit où les fichiers et/ou les informations symboliques de la machine distante/cible sont mis en cache. La valeur SYSROOT est utilisée par BCCOSX.EXE pour rechercher les fichiers d'inclusion et de bibliothèques.
Pour changer la valeur de SYSROOT, utilisez l'option --sysroot et spécifiez le répertoire du PC de développement où vous voulez que le cache local soit copié.
Pour définir le chemin SYSROOT depuis RAD Studio, voir Profils distants.
Options de la cible pour les applications multiplates-formes (--txxx)
BCCOSX supporte les options suivantes du compilateur multiplate-forme pour la spécification de la cible d'une compilation (les options de ligne de commande -txxx) :
Pour afficher l'aide de la ligne de commande pour les options -txxx, entrez : > bccosx -h -t.
| Option | Description |
|---|---|
|
Spécifier l'exécutable cible |
|
|
|
DLL (bibliothèque partagée) est la cible ( |
|
La cible est une application multithread |
|
La cible est un package |
Certaines des options -t ne sont pas supportées par BCC32, le compilateur C++ en ligne de commande pour Windows 32 bits.
Fichier BCCOSX.CFG
Le fichier de configuration pour BCCOSX contient les paramètres suivants pour le compilateur croisé :
-I"C:\Program Files\Embarcadero\RAD Studio\9.0\include\osx";"C:\Program Files\Embarcadero\RAD Studio\9.0\include\osx\crtl";"C:\Program Files\Embarcadero\RAD Studio\9.0\include\osx\rtl" -I"C:\Program Files\Embarcadero\RAD Studio\9.0\dinkumware" -L"C:\Program Files\Embarcadero\RAD Studio\9.0\lib\osx32\release" --syslib=/usr/lib --sysinc=/usr/include -F/System/Library/Frameworks
Vous pouvez créer votre propre fichier BCCOSX.CFG et l'utiliser pour la compilation. Le fichier BCCOSX.CFG personnalisé doit être placé dans le répertoire en cours d'où BCCOSX.EXE est invoqué.
Voir aussi
- XLINK.EXE, le lieur multiplate-forme
- Développement d'applications Mac OS X
- BCC32, le compilateur C++ en ligne de commande
-
--framework(option) - Compilation et liaison d'une application console OS X C++ depuis la ligne de commande
- Application console multiplate-forme OS X "Hello World"
- Applications multiplates-formes - Index
- Options de projet du compilateur C++
- Mac OS X GNU Compiler Collection