zion - cpp
.de Sh " Subsection heading .if t .Sp .ne 5
$1
Nom
cpp - Le préprocesseur C
Résumé
.IX Header "SYNOPSIS" cpp [-Dmacro[=déf]...] [-Umacro] [-Irép...] [-Wavert...] [-M|-MM] [-MG] [-MF nom-fichier] [-MP] [-MQ cible...] [-MT cible...] [-x langage] [-std=standard] fichier-entrée fichier-sortie
Seules les options les plus utiles sont listées ici ; voyez plus bas pour les autres.
Description
.IX Header "DESCRIPTION" Le préprocesseur C, souvent connu sous le nom de cpp, est un processeur de macros qui est utilisé automatiquement par le compilateur C pour transformer votre programme avant la compilation proprement dite. Il est appelé processeur de macros car il vous permet de définir des macros, qui sont de brèves abréviations pour des constructions plus longues.
Le préprocesseur C n'est destiné à être utilisé que sur du code source C, *(C+ ou Objective C. Par le passé, il a été employé abusivement comme un processeur de texte général. Il se cassera les dents sur de l'entrée qui n'obéit pas aux règles lexicales du C. Par exemple, les apostrophes seront interprétées comme le début de constantes caractères, et provoqueront des erreurs. De plus, vous ne pouvez vous compter sur lui pour préserver les caractéristiques de l'entrée qui ne sont pas significatives dans la famille des langages C. Si un Makefile est prétraité, toutes les tabulations « dures » seront supprimées, et le Makefile ne fonctionnera pas.
Cela étant dit, vous pouvez souvent parvenir à utiliser cpp sur des choses qui ne sont pas du C. Les langages de programmation dérivés de l'Algol sont souvent sûrs (Pascal, Ada, etc.). L'assembleur l'est aussi, avec quelques précautions. Le mode -traditional préserve plus de caractères d'espacement, et est dans les autres cas plus permissif. Beaucoup de ces problèmes peuvent être évités en écrivant des commentaires de style C ou *(C+ au lieu des commentaires du langage natif, et en n'utilisant que des macros simples.
À chaque fois que c'est possible, vous devriez utiliser un préprocesseur adapté au langage dans lequel vous écrivez. Les versions modernes de l'assembleur s-1GNUs0 possèdent des outils de gestion des macros. La plupart des langages de programmation de haut niveau disposent de leurs propres mécanismes de compilation conditionnelle et d'inclusion. En dernier recours, essayez un processeur de texte réellement général, comme s-1GNUs0 M4.
Les préprocesseurs C se différencient en quelques détails. Ce manuel discute du préprocesseur C s-1GNUs0, qui fournit un petit sur-ensemble des fonctionnalités du C Standard s-1ISOs0. Dans son mode par défaut, le préprocesseur s-1GNUs0 C ne fait pas quelques actions requises par le standard. Ce sont des fonctionnalités qui sont rarement voire jamais utilisées, et qui peuvent entraîner des modifications surprenantes de la signification d'un programme qui ne s'y attend pas. Pour utiliser le C Standard s-1ISOs0, vous devriez utiliser les options -std=c89 ou -std=c99, en fonction de la version du standard que vous voulez. Pour obtenir tous les diagnostics obligatoires, vous devez également utiliser -pedantic.
Options
.IX Header "OPTIONS" Le préprocesseur C s'attend à deux noms de fichier pour arguments, fichier-entrée et fichier-sortie. Le préprocesseur lit fichier-entrée de concert avec tous les autres fichiers spécifiés par des directives #include. Toute la sortie générée par les fichiers d'entrée combinés est écrite dans fichier-sortie.
fichier-entrée ou fichier-sortie peut être -, ce qui pour fichier-entrée signifie de lire à partir de l'entrée standard, et pour fichier-sortie d'écrire sur la sortie standard. De plus, si l'un des fichiers est omis, cela signifie la même chose que si - avait été spécifié pour ce fichier.
À moins que cela ne soit mentionné différemment, ou que l'option se termine par =, toutes les options qui prennent un argument peuvent le voir apparaître immédiatement après l'option, ou avec une espace intermédiaire : -Ifoo et -I foo ont le même effet.
Beaucoup d'options ont un nom composé de plusieurs lettres ; de multiples options composées d'une seule lettre ne peuvent dès lors pas être regroupées : -dM est très différent de -d -M.
"-D nom" 4
.IX Item "-D name" Prédéfinir nom comme une macro, ayant pour définition f(CW1. |
"-D nom=définition" 4
.IX Item "-D name=definition" Prédéfinir la macro nom, possédant la définition définition. Il n'y a aucune restriction quant au contenu de la définition, mais si vous invoquez le préprocesseur depuis un shell ou un programme de type shell, vous pourriez être dans l'obligation d'utiliser la syntaxe de protection du shell pour protéger les caractères comme les espaces qui y ont une signification spéciale. .Sp Si vous voulez définir une macro du type fonction sur la ligne de commandes, écrivez sa liste d'arguments avec les parenthèses entourantes avant le signe égal (s'il y en a un). Les parenthèses sont significatives dans la plupart des shells, et vous devrez donc protéger l'option. -D'nom(args...)=définition' fonctionne avec sh et csh. .Sp Les options -D et -U sont traitées dans leur ordre d'apparition sur la ligne de commandes. Toutes les options -imacros fichier et -include fichier sont traitées après toutes les options -D et -U. |
"-U nom" 4
.IX Item "-U name" Annuler toute définition précédente de nom, qu'elle soit intégrée ou fournie à l'aide d'une option -D. |
"-undef" 4
.IX Item "-undef" Ne pas prédéfinir de macro spécifique au système. Les macros prédéfinies habituelles restent définies. |
"-I rép" 4
.IX Item "-I dir" Ajouter le répertoire rép à la liste des répertoires où chercher les fichiers d'en-tête. .Sp Les répertoires nommés avec -I sont parcourus avant les répertoires d'inclusion système standard. .Sp Il est dangereux de spécifier un répertoire d'inclusion système standard dans une option -I. Cela fait échouer le traitement spécial des en-têtes système. Cela peut également faire échouer les réparations des en-têtes système bogués qu'effectue s-1GCCs0 lors de son installation. |
"-o fichier" 4
.IX Item "-o file" Écrire la sortie dans le fichier. C'est la même chose que de spécifier fichier comme second argument non-option pour cpp. gcc a une interprétation différente du second argument non-option ; vous devez donc utiliser -o pour spécifier le fichier de sortie. |
"-Wall" 4
.IX Item "-Wall" Active tous les avertissements optionnels qui sont désirables pour du code normal. Actuellement, il s'agit de -Wcomment et -Wtrigraphs. Notez que beaucoup des avertissements du préprocesseur sont activés par défaut et n'ont pas d'option permettant de les contrôler. |
"-Wcomment" 4
.IX Item "-Wcomment" |
"-Wcomments" 4
.IX Item "-Wcomments" |
Avertir à chaque fois qu'une séquence de début de commentaire /* apparaît dans un commentaire /*, ou quand un backslash suivi d'un saut de ligne apparaît dans un commentaire //. (Les deux formes ont le même effet.)
"-Wtrigraphs" 4
.IX Item "-Wtrigraphs" Avertir quand des trigraphes sont rencontrés. Cette option n'avait auparavant d'effet que si -trigraphs était également spécifié, mais fonctionne maintenant indépendamment. Des avertissements ne sont pas fournis pour les trigraphes présents à l'intérieur de commentaires, car ils n'affectent pas la signification du programme. |
"-Wtraditional" 4
.IX Item "-Wtraditional" Avertir de certaines constructions qui se comportent différemment en C traditionnel et en C s-1ISOs0. Avertir également des constructions C s-1ISOs0 qui n'ont pas d'équivalent en C traditionnel, et des constructions problématiques qui devraient être évitées. |
"-Wimport" 4
.IX Item "-Wimport" Avertir la première fois qu'un #import est utilisé. |
"-Wundef" 4
.IX Item "-Wundef" Avertir quand un identificateur qui n'est pas une macro est rencontré dans une directive #if, en dehors de defined. De tels identificateurs sont remplacés par zéro. |
"-Werror" 4
.IX Item "-Werror" Traiter les avertissements comme des erreurs pures et dures. Le code source qui déclenche des avertissements sera rejeté. |
"-Wsystem-headers" 4
.IX Item "-Wsystem-headers" Afficher des messages d'avertissement pour du code des en-têtes système. Ils sont normalement inutiles pour trouver des bogues dans votre propre code, et par conséquent supprimés. Si vous êtes responsable de la bibliothèque système, vous pourriez vouloir les visualiser. |
"-w" 4
.IX Item "-w" Supprimer tous les avertissements, même ceux que s-1GNUs0 s-1CPPs0 émet par défaut. |
"-pedantic" 4
.IX Item "-pedantic" Émettre tous les diagnostics obligatoires listés dans le standard C. Certains d'entre eux sont laissés de côté par défaut, car ils se déclenchent fréquemment dans du code inoffensif. |
"-pedantic-errors" 4
.IX Item "-pedantic-errors" Émettre tous les diagnostics obligatoires, et les traiter comme des erreurs. Cela inclut les diagnostics obligatoires que s-1GCCs0 émet sans -pedantic, mais traite comme des avertissements. |
"-M" 4
.IX Item "-M" Au lieu de sortir les résultats du prétraitement, générer une règle convenant à make qui décrit les dépendances du fichier source principal. Le préprocesseur génère une règle make contenant le nom du fichier objet pour ce fichier source, un signe deux-points, et le nom de tous les fichiers inclus, y compris ceux provenant des options de ligne de commandes -include ou -imacros. .Sp À moins que cela ne soit spécifié explicitement (avec -MT ou -MQ), le nom du fichier objet est constitué du nom de base du fichier source où le suffixe éventuel est remplacé par le suffixe de fichier objet. S'il y a beaucoup de fichiers inclus, alors la règle est découpée en plusieurs lignes en utilisant e-newline. La règle n'a pas de commande. .Sp Cette option ne supprime pas la sortie de débogage du préprocesseur, comme -dM. Pour éviter de mélanger une telle sortie de débogage avec les règles de dépendances, vous devriez spécifier explicitement le fichier de sortie des dépendances avec -MF, ou utiliser une variable d'environnement comme s-1DEPENDENCIES_OUTPUTs0. La sortie de débogage sera toujours envoyée dans le flux de sortie normal comme de coutume. .Sp Passer -M au pilote implique -E. |
"-MM" 4
.IX Item "-MM" Comme -M, mais ne pas mentionner les fichiers d'en-tête qui sont trouvés dans les répertoires d'en-tête système, ni les fichiers d'en-tête qui sont inclus, directement ou indirectement, depuis un tel en-tête. .Sp Cela implique que le choix de crochets pointus (< et >) ou de guillemets dans une directive #include ne détermine pas en lui-même si l'en-tête apparaîtra dans la sortie de dépendances de -MM. C'est un léger changement dans la sémantique depuis les versions 3.0 et antérieures de s-1GCCs0. |
"-MF fichier" 4
.IX Item "-MF file" @anchor{-MF} Quand utilisé avec -M ou -MM, spécifie un fichier où écrire les dépendances. Si aucun interrupteur -MF n'est fourni, le préprocesseur envoie les règles au même endroit où il aurait envoyé la sortie prétraitée. .Sp Quand il est utilisé avec les options du pilote -MD ou -MMD, -MF surcharge le fichier de sortie des dépendances par défaut. |
"-MG" 4
.IX Item "-MG" Quand utilisé avec -M ou -MM, -MG dit de traiter les fichiers d'en-tête manquants comme des fichiers générés et supposer qu'ils résident dans le même répertoire que le fichier source. Cela supprime la sortie prétraitée, car un fichier d'en-tête manquant constitue généralement une erreur. .Sp Cette fonctionnalité est utilisée lors de la mise à jour automatique de makefiles. |
"-MP" 4
.IX Item "-MP" Cette option indique à s-1CPPs0 d'ajouter une cible « phony » pour chaque dépendance autre que le fichier principal, ne les faisant dépendre de ce fait de rien du tout. Ces règles factices surmontent des erreurs que vous donne make si vous supprimez des fichiers d'en-tête sans mettre à jour le Makefile pour qu'il concorde. .Sp Voici une sortie typique : .Sp .Vb 1 & test.o: test.c test.h .Ve .Sp .Vb 1 & test.h: .Ve |
"-MT cible" 4
.IX Item "-MT target" Changer la cible de la règle émise lors de la génération des dépendances. Par défaut, s-1CPPs0 prend le nom du fichier d'entrée principal, chemin inclus, supprime tout suffixe de fichier comme .c, et concatène le suffixe de fichier objet habituel de la plate-forme. Le résultat constitue la cible. .Sp Une option -MT définira la cible pour qu'elle soit exactement la chaîne de caractères que vous spécifiez. Si vous voulez plusieurs cibles, vous pouvez les spécifier comme un unique argument de -MT, ou utiliser plusieurs options -MT. .Sp Par exemple, -MT '$(objpfx)foo.o' pourrait donner .Sp .Vb 1 & $(objpfx)foo.o: foo.c .Ve |
"-MQ cible" 4
.IX Item "-MQ target" Comme -MT, mais protège les caractères qui sont spéciaux pour Make. -MQ '$(objpfx)foo.o' donne .Sp .Vb 1 & $$(objpfx)foo.o: foo.c .Ve .Sp La cible par défaut est automatiquement protégée, comme si elle avait été fournie avec -MQ. |
"-MD" 4
.IX Item "-MD" -MD est équivalent à -M -MF fichier, sauf que -E n'est pas impliqué. Le pilote détermine le fichier en fonction de l'utilisation éventuelle d'une option -o est donnée. Si c'est le cas, le pilote utilise son argument mais avec un suffixe .d ; sinon, il prend le nom de base du fichier d'entrée et lui applique un suffixe .d. .Sp Si -MD est utilisé en conjonction avec -E, tout interrupteur -o est censé spécifier le fichier de sortie des dépendances (sauf f(CW@pxref{-MF}), mais s'il est utilisé sans -E, chaque -o est censé spécifier un fichier objet cible. .Sp Puisque -E n'est pas impliqué, -MD peut être utilisé pour générer un fichier de sortie de dépendances comme effet de bord du processus de compilation. |
"-MMD" 4
.IX Item "-MMD" Comme -MD, sauf que seuls les fichiers d'en-tête utilisateurs sont mentionnés, et pas les fichiers d'en-tête système. |
"-x c" 4
.IX Item "-x c" |
"-x c++" 4
.IX Item "-x c++" |
"-x objective-c" 4
.IX Item "-x objective-c" |
"-x assembler-with-cpp" 4
.IX Item "-x assembler-with-cpp" |
Spécifier le langage source : C, *(C+, Objective-C, ou assembleur. Cela n'a rien à voir avec la conformité aux standards ou avec des extensions ; cela précise simplement à quelle syntaxe de base on doit s'attendre. Si vous ne fournissez aucune de ces options, cpp déduira le langage à partir de l'extension du fichier source : .c, .cc, .m ou .S. Certaines autres extensions habituelles pour le *(C+ et l'assembleur sont également reconnues. Si cpp ne reconnaît pas l'extension, il traitera le fichier comme étant du C ; c'est le mode le plus générique. .Sp Note : De précédentes versions de cpp acceptaient une option -lang qui sélectionnait à la fois le langage et le niveau de conformité aux standards. Cette option a été supprimée, car elle entre en conflit avec l'option -l.
"-std=standard" 4
.IX Item "-std=standard" |
"-ansi" 4
.IX Item "-ansi" |
Spécifier le standard auquel le code devrait se conformer. Actuellement, cpp ne connaît que les standards du C ; d'autres standards de langages seront ajoutés dans le futur. .Sp Le standard peut être :
.ie n .IP """iso9899:1990""" 4 .el .IP "f(CWiso9899:1990" 4 .IX Item "iso9899:1990" .ie n .IP """c89""" 4 .el .IP "f(CWc89" 4 .IX Item "c89" Le standard C s-1ISOs0 de 1990. c89 est le raccourci habituel pour cette version du standard. .Sp L'option -ansi est équivalente à -std=c89. .ie n .IP """iso9899:199409""" 4 .el .IP "f(CWiso9899:199409" 4 .IX Item "iso9899:199409" Le standard C 1990, comme amendé en 1994. .ie n .IP """iso9899:1999""" 4 .el .IP "f(CWiso9899:1999" 4 .IX Item "iso9899:1999" .ie n .IP """c99""" 4 .el .IP "f(CWc99" 4 .IX Item "c99" .ie n .IP """iso9899:199x""" 4 .el .IP "f(CWiso9899:199x" 4 .IX Item "iso9899:199x" .ie n .IP """c9x""" 4 .el .IP "f(CWc9x" 4 .IX Item "c9x" La standard C s-1ISOs0 révisé, publié en décembre 1999. Avant sa publication, il était connu sous le nom C9X. .ie n .IP """gnu89""" 4 .el .IP "f(CWgnu89" 4 .IX Item "gnu89" Le standard C 1990 plus les extensions s-1GNUs0. C'est le standard par défaut. .ie n .IP """gnu99""" 4 .el .IP "f(CWgnu99" 4 .IX Item "gnu99" .ie n .IP """gnu9x""" 4 .el .IP "f(CWgnu9x" 4 .IX Item "gnu9x" Le standard C 1999 plus les extensions s-1GNUs0. |
"-I-" 4
.IX Item "-I-" Diviser le chemin d'inclusion. Tout répertoire spécifié avec une option -I avant -I- n'est parcouru que pour les en-têtes requis avec « #include "f(CIfichierf(CW" » ; il n'est pas parcouru pour des « #include <f(CIfichierf(CW> ». Si des répertoires additionnels sont spécifiés par des options -I après le -I-, ces répertoires sont parcourus pour chaque directive #include. .Sp De plus, -I- empêche l'utilisation du répertoire courant (où est situé le fichier d'entrée actuel) comme premier répertoire de recherche pour « #include "f(CIfichierf(CW" ». |
"-nostdinc" 4
.IX Item "-nostdinc" Ne pas chercher les fichiers d'en-tête dans les répertoires standard du système. Seuls les répertoires que vous avez spécifiés avec des options -I (et le répertoire courant, si c'est approprié) sont parcourus. |
"-nostdinc++" 4
.IX Item "-nostdinc++" Ne pas rechercher de fichiers d'en-tête dans les répertoires standard spécifiques au *(C+, mais toujours les chercher dans les autres répertoires standard. (Cette option est utilisée lors de la construction de la bibliothèque *(C+.) |
"-include fichier" 4
.IX Item "-include file" Traiter fichier comme si « #include "f(CIfichierf(CW" » était apparu comme première ligne du fichier source principal. Néanmoins, le premier répertoire parcouru pour trouver fichier est le répertoire de travail du préprocesseur plutôt que le répertoire contenant le fichier source principal. S'il n'est pas trouvé là, il est recherché dans le reste de la chaîne de recherche « #include "f(CI...f(CW" » comme de coutume. .Sp Si plusieurs options -include sont fournies, les fichiers sont inclus dans leur ordre d'apparition sur la ligne de commandes. |
"-imacros fichier" 4
.IX Item "-imacros file" Exactement comme -include, sauf que toute sortie produite lors de l'analyse du fichier est jetée. Les macros qu'il définit restent définies. Cela vous permet d'obtenir toutes les macros d'un en-tête sans devoir également traiter ses déclarations. .Sp Tous les fichiers spécifiés par -imacros sont traités avant tous les fichiers spécifiés par -include. |
"-idirafter répertoire" 4
.IX Item "-idirafter dir" Rechercher des fichiers d'en-tête dans le répertoire, mais après que les répertoires spécifiés par -I et les répertoires système standard aient été épuisés. répertoire est traité comme un répertoire d'inclusion système. |
"-iprefix préfixe" 4
.IX Item "-iprefix prefix" Spécifier le préfixe des options -iwithprefix ultérieures. Si le préfixe représente un répertoire, vous devriez inclure le / final. |
"-iwithprefix répertoire" 4
.IX Item "-iwithprefix dir" |
"-iwithprefixbefore répertoire" 4
.IX Item "-iwithprefixbefore dir" |
Concaténer répertoire au préfixe spécifié précédemment avec -iprefix, et ajouter le répertoire résultant au chemin de recherche d'inclusion. -iwithprefixbefore le place au même endroit que le ferait -I ; -iwithprefix le place au même endroit que -idirafter. .Sp L'utilisation de ces options est découragée.
"-isystem répertoire" 4
.IX Item "-isystem dir" Rechercher des fichiers d'en-tête dans le répertoire, après tous les répertoires spécifiés par -I, mais avant les répertoires système standard. Le marquer comme étant un répertoire système, afin qu'il ait droit au même traitement spécial que celui qui s'applique aux répertoires système standard. |
"-fpreprocessed" 4
.IX Item "-fpreprocessed" Indiquer au préprocesseur que le fichier d'entrée a déjà été prétraité. Cela supprime certaines choses comme l'expansion des macros, la conversion des trigraphes, le découpage de sauts de ligne protégés (escaped newline splicing), et le traitement de la plupart des directives. Le préprocesseur reconnaît et supprime toujours les commentaires, afin que vous puissiez passer au compilateur un fichier prétraité avec -C sans conséquence fâcheuse. Dans ce mode, le préprocesseur intégré est un peu plus qu'un analyseur lexical pour les frontaux. .Sp -fpreprocessed est implicite si le fichier d'entrée possède l'une des extensions .i, .ii ou .mi. Ce sont les extensions que s-1GCCs0 utilise pour les fichiers prétraités créés par -save-temps. |
"-ftabstop=largeur" 4
.IX Item "-ftabstop=width" Fixer la distance entre les taquets de tabulation. Cela aide le préprocesseur à rapporter des numéros de colonnes corrects dans les avertissements ou erreurs, même si des tabulations apparaissent sur la ligne. Si la valeur est plus petite que 1 ou plus grande que 100, l'option est ignorée. La distance par défaut est 8. |
"-fno-show-column" 4
.IX Item "-fno-show-column" Ne pas afficher les numéros des colonnes dans les diagnostics. Cela peut être nécessaire si les diagnostics sont exploités par un programme qui ne comprend pas les numéros de colonnes, comme dejagnu. |
"-A prédicat=réponse" 4
.IX Item "-A predicate=answer" Faire une assertion de prédicat prédicat et de réponse réponse. Cette forme est préférée à la forme plus ancienne -A prédicat(réponse), qui est toujours supportée, car n'utilisant pas les caractères spéciaux du shell. |
"-A -prédicat=réponse" 4
.IX Item "-A -predicate=answer" Annuler une assertion de prédicat prédicat et de réponse réponse. |
"-A-" 4
.IX Item "-A-" Annuler toutes les assertions prédéfinies et toutes les assertions précédant cette option sur la ligne de commandes. Supprimer également la définition de toutes les macros prédéfinies et de toutes les macros préalablement spécifiées sur la ligne de commandes. (C'est une excroissance historique et cela pourrait changer dans le futur.) |
"-dCARS" 4
.IX Item "-dCHARS" s-1CARSs0 est une séquence constituée d'un ou de plusieurs des caractères suivants, non précédés d'une espace. D'autres caractères sont interprétés par le compilateur lui-même, ou réservés pour des versions futures de s-1GCCs0, et sont par conséquent ignorés silencieusement. Si vous spécifiez des caractères dont les comportements ne sont pas compatibles, le résultat est indéfini. "M" 4
"D" 4
"N" 4
"I" 4
|
"-P" 4
.IX Item "-P" Empêcher la génération de marqueurs de ligne dans la sortie du préprocesseur. Cela pourrait être utile quand on exécute le préprocesseur sur quelque chose qui n'est pas du code C, et qui sera envoyé à un programme qui pourrait être embrouillé à cause des marqueurs de ligne. |
"-C" 4
.IX Item "-C" Ne pas éliminer les commentaires. Tous les commentaires sont passés dans le fichier de sortie, sauf ceux présents dans les directives traitées, qui sont effacés en même temps que la directive. .Sp Vous devriez vous attendre à des effets de bord quand vous utilisez -C ; cette option force le préprocesseur à traiter les commentaires comme des éléments lexicaux à part entière. Par exemple, les commentaires apparaissant au début de ce qui serait une ligne de directive ont pour effet de transformer cette ligne en une ligne de code source ordinaire, puisque le premier élément lexical de la ligne n'est plus un #. |
"-gcc" 4
.IX Item "-gcc" Définir les macros __GNUC__, __GNUC_MINOR__ et __GNUC_PATCHLEVEL__. Elles sont définies automatiquement quand vous utilisez gcc -E ; vous pouvez les désactiver dans ce cas avec -no-gcc. |
"-traditional" 4
.IX Item "-traditional" Essayer d'imiter le comportement du C à l'ancienne, en opposition avec le C s-1ISOs0. |
"-trigraphs" 4
.IX Item "-trigraphs" Prendre en charge les séquences de trigraphes. |
"-remap" 4
.IX Item "-remap" Activer du code spécial pour s'accommoder de systèmes de fichiers qui ne permettent que des noms de fichiers très courts, comme s-1MS-DOSs0. |
"-$" 4
.IX Item "-$" Interdire l'utilisation du $ dans les identificateurs. Le standard C autorise les implémentations à définir des caractères supplémentaires pouvant apparaître dans les identificateurs. Par défaut, s-1GNUs0 s-1CPPs0 autorise le $, une extension habituelle. |
"-h" 4
.IX Item "-h" |
"--help" 4
.IX Item "--help" |
"--target-help" 4
.IX Item "--target-help" |
Afficher du texte décrivant toutes les options de ligne de commandes au lieu de prétraiter quoi que ce soit.
"-v" 4
.IX Item "-v" Mode verbeux. Afficher le numéro de version de s-1GNUs0 s-1CPPs0 au début de l'exécution, et rapporter la forme finale du chemin d'inclusion. |
"-H" 4
.IX Item "-H" Afficher le nom de chaque fichier d'en-tête utilisé, en plus d'autres activités normales. Chaque nom est indenté pour montrer sa profondeur dans la pile de #include. |
"-version" 4
.IX Item "-version" |
"--version" 4
.IX Item "--version" |
Afficher le numéro de version de s-1GNUs0 s-1CPPs0. Avec un tiret, continuer le prétraitement comme de coutume. Avec deux tirets, s'arrêter immédiatement.
Environnement
.IX Header "ENVIRONMENT" Cette section décrit les variables d'environnement qui affectent la façon dont s-1GCCs0 se comporte. Vous pouvez les utiliser pour spécifier des répertoires ou des préfixes à utiliser lors de la recherche de fichiers à inclure, ou pour contrôler la sortie des dépendances.
Notez que vous pouvez également spécifier des endroits où chercher en utilisant des options comme -I, et contrôler la sortie des dépendances avec des options comme -M. Elles sont prioritaires sur les variables d'environnement, qui sont à leur tour prioritaires sur la configuration de s-1GCCs0.
"s-1CPATHs0" 4
.IX Item "CPATH" |
"C_INCLUDE_PATH" 4
.IX Item "C_INCLUDE_PATH" |
"s-1CPLUS_INCLUDE_PATHs0" 4
.IX Item "CPLUS_INCLUDE_PATH" |
"s-1OBJC_INCLUDE_PATHs0" 4
.IX Item "OBJC_INCLUDE_PATH" |
La valeur de chaque variable est une liste de répertoires séparés par un caractère spécial, un peu comme s-1PATHs0, dans lesquels on cherche les fichiers d'en-tête. Le caractère spécial, « PATH_SEPARATOR », dépend de la cible et est déterminé au moment de la construction de s-1GCCs0. Pour les cibles basées sur Windows, c'est un point-virgule, et pour pratiquement toutes les autres cibles, c'est un signe deux-points. .Sp s-1CPATHs0 spécifie une liste de répertoires à parcourir comme s'ils avaient été spécifiés par -I, mais après tous les chemins fournis par des options -I sur la ligne de commandes. La variable d'environnement est utilisée quel que soit le langage en cours de prétraitement. .Sp Les variables d'environnement restantes ne s'appliquent que lors du prétraitement du langage particulier indiqué. Chacune d'entre elles spécifie une liste de répertoires à parcourir comme s'ils avaient été spécifiés par -isystem, mais après tous les chemins fournis par des options -isystem sur la ligne de commandes. .Sp Voyez aussi f(CW@ref{Search Path}.
"s-1DEPENDENCIES_OUTPUTs0" 4
.IX Item "DEPENDENCIES_OUTPUT" @anchor{s-1DEPENDENCIES_OUTPUTs0} Si cette variable est définie, sa valeur spécifie la façon de produire des dépendances pour Make basées sur les fichiers d'en-tête non-système traités par le compilateur. Les fichiers d'en-tête système sont ignorés dans la sortie des dépendances. .Sp La valeur de s-1DEPENDENCIES_OUTPUTs0 peut être simplement un nom de fichier, auquel cas les règles Make sont écrites dans ce fichier, en devinant le nom de la cible à partir du nom de fichier source, ou bien la valeur peut avoir la forme fichier cible, auquel cas les règles sont écrites dans le fichier en utilisant cible comme nom de cible. .Sp En d'autres termes, cette variable d'environnement est équivalente à la combinaison des options -MM et -MF, complétée par un interrupteur -MT éventuel. |
"s-1SUNPRO_DEPENDENCIESs0" 4
.IX Item "SUNPRO_DEPENDENCIES" Cette variable est identique à la variable d'environnement s-1DEPENDENCIES_OUTPUTs0, mis à part que les fichiers d'en-tête système ne sont pas ignorés, et implique donc -M plutôt que -MM. Néanmoins, les dépendances du fichier d'entrée principal sont omises. |
Voir aussi
.IX Header "SEE ALSO" &gpl(7), gfdl(7), fsf-funding(7), &gcc(1), as(1), ld(1), et les entrées Info pour cpp, gcc et binutils.
Copyright
.IX Header "COPYRIGHT" Copyright (c) 1987, 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
L'autorisation est donnée de copier, de distribuer et/ou de modifier ce document sous les termes de la s-1GNUs0 Free Documentation License version 1.1 ou toute autre version ultérieure publiée par la Free Software Foundation. Une copie de la licence est incluse dans la page de manuel gfdl(7). Ce manuel ne contient aucune section invariante. Le texte de couverture est (a) (voir ci-dessous), et le texte de quatrième de couverture est (b) (voir ci-dessous).
(a) Le texte de couverture de la s-1FSFs0 est :
.Vb 1 & Un Manuel GNU .Ve
(b) Le texte de quatrième de couverture de la s-1FSFs0 est :
.Vb 3 & Vous êtes libre de copier et de modifier ce manuel GNU, & tout comme les logiciels GNU. Les copies publiées par la Free & Software Foundation collectent des fonds pour le & développement de GNU. .Ve
Traduction
Frédéric Delanoy <delanoy_f at yahoo.com>, 2002.
Poster un commentaire