zion -  gcc

.de Sh " Subsection heading .if t .Sp .ne 5

$1


Nom

gcc - compilateur C et C++ du projet s-1GNUs0

Résumé

.IX Header "SYNOPSIS" gcc [-c|-S|-E] [-std=standard] [-g] [-pg] [-Oniveau] [-Wavertissement...] [-pedantic] [-Irép...] [-Lrép...] [-Dmacro[=déf]...] [-Umacro] [-foption...] [-moption-machine...] [-o fichier-sortie] fichier-entrée...

Seules les options les plus utiles sont listées ici ; voyez plus bas pour le reste. g++ accepte la plupart des options de gcc.

Description

.IX Header "DESCRIPTION" Quand vous invoquez s-1GCCs0, il effectue normalement le prétraitement, la compilation, l'assemblage et l'édition des liens. Les « options globales » vous permettent d'arrêter ce processus à une étape intermédiaire. Par exemple, l'option -c indique de ne pas lancer l'éditeur de liens. La sortie est alors constituée des fichiers objets produits par l'assembleur.

D'autres options peuvent être passées à l'une des étapes du traitement. Certaines options contrôlent le préprocesseur et d'autres le compilateur lui-même. D'autres options encore contrôlent l'assembleur et l'éditeur de liens ; la plupart d'entre elles ne sont pas documentées ici, puisque vous ne devez que rarement les utiliser.

La plupart des options de ligne de commandes que vous pouvez utiliser avec s-1GCCs0 sont utiles pour les programmes C ; quand une option n'est utile que pour un autre langage (habituellement *(C+), l'explication le précise explicitement. Si la description d'une option particulière ne mentionne pas de langage source, vous pouvez utiliser cette option avec tous les langages supportés.

Le programme gcc accepte des options et des noms de fichiers comme opérandes. 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 : -dr est très différent de -d -r.

Vous pouvez mélanger les options avec d'autres arguments. Pour la plupart, l'ordre utilisé n'est pas important. L'ordre est significatif quand vous utilisez plusieurs options du même type ; par exemple, si vous spécifiez -L plus d'une fois, les répertoires seront parcourus dans l'ordre spécifié.

Beaucoup d'options possèdent des noms longs débutant par -f ou par &-W -- par exemple, -fforce-mem, -fstrength-reduce, -Wformat etc. La plupart d'entre elles possèdent à la fois les formes positive et négative ; la forme négative de -ffoo serait -fno-foo. Ce manuel ne documente que l'une de ces deux formes, en l'occurrence celle qui n'est pas utilisée par défaut.

Options

.IX Header "OPTIONS"

Résumé des options

.IX Subsection "Option Summary" Voici un résumé de toutes les options, groupées par type. Les explications suivent dans les prochaines sections.
"Options globales" 4
    .IX Item "Overall Options" &-c -S -E -o fichier -pipe -pass-exit-codes -x langage &-v -### --target-help --help

"Options du langage C" 4
    .IX Item "C Language Options" &-ansi -std=standard -aux-info nom-fichier &-fno-asm -fno-builtin -fno-builtin-fonction &-fhosted -ffreestanding &-trigraphs -no-integrated-cpp -traditional -traditional-cpp &-fallow-single-precision -fcond-mismatch &-fsigned-bitfields -fsigned-char &-funsigned-bitfields -funsigned-char &-fwritable-strings -fshort-wchar

"Options du langage *(C+" 4
    .IX Item " Language Options" &-fno-access-control -fcheck-new -fconserve-space &-fno-const-strings -fdollars-in-identifiers &-fno-elide-constructors &-fno-enforce-eh-specs -fexternal-templates &-falt-external-templates &-ffor-scope -fno-for-scope -fno-gnu-keywords &-fno-implicit-templates &-fno-implicit-inline-templates &-fno-implement-inlines -fms-extensions &-fno-nonansi-builtins -fno-operator-names &-fno-optional-diags -fpermissive &-frepo -fno-rtti -fstats -ftemplate-depth-n &-fuse-cxa-atexit -fvtable-gc -fno-weak -nostdinc++ &-fno-default-inline -Wabi -Wctor-dtor-privacy &-Wnon-virtual-dtor -Wreorder &-Weffc++ -Wno-deprecated &-Wno-non-template-friend -Wold-style-cast &-Woverloaded-virtual -Wno-pmf-conversions &-Wsign-promo -Wsynth

"Options du langage Objective-C" 4
    .IX Item "Objective-C Language Options" &-fconstant-string-class=nom-classe &-fgnu-runtime -fnext-runtime -gen-decls &-Wno-protocol -Wselector

"Options indépendantes du langage" 4
    .IX Item "Language Independent Options" &-fmessage-length=n &-fdiagnostics-show-location=[once|every-line]

"Options d'avertissement" 4
    .IX Item "Warning Options" &-fsyntax-only -pedantic -pedantic-errors &-w -W -Wall -Waggregate-return &-Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment &-Wconversion -Wno-deprecated-declarations &-Wdisabled-optimization -Wdiv-by-zero -Werror &-Wfloat-equal -Wformat -Wformat=2 &-Wformat-nonliteral -Wformat-security &-Wimplicit -Wimplicit-int &-Wimplicit-function-declaration &-Werror-implicit-function-declaration &-Wimport -Winline &-Wlarger-than-longueur -Wlong-long &-Wmain -Wmissing-braces -Wmissing-declarations &-Wmissing-format-attribute -Wmissing-noreturn &-Wmultichar -Wno-format-extra-args -Wno-format-y2k &-Wno-import -Wpacked -Wpadded &-Wparentheses -Wpointer-arith -Wredundant-decls &-Wreturn-type -Wsequence-point -Wshadow &-Wsign-compare -Wswitch -Wsystem-headers &-Wtrigraphs -Wundef -Wuninitialized &-Wunknown-pragmas -Wunreachable-code &-Wunused -Wunused-function -Wunused-label -Wunused-parameter &-Wunused-value -Wunused-variable -Wwrite-strings

"Options d'avertissement spécifiques au C" 4
    .IX Item "C-only Warning Options" &-Wbad-function-cast -Wmissing-prototypes -Wnested-externs &-Wstrict-prototypes -Wtraditional

"Options de débogage" 4
    .IX Item "Debugging Options" &-dlettres -dumpspecs -dumpmachine -dumpversion &-fdump-unnumbered -fdump-translation-unit[-n] &-fdump-class-hierarchy[-n] &-fdump-tree-original[-n] -fdump-tree-optimized[-n] &-fdump-tree-inlined[-n] &-fmem-report -fpretend-float &-fprofile-arcs -ftest-coverage -ftime-report &-g -gniveau -gcoff -gdwarf -gdwarf-1 -gdwarf-1+ -gdwarf-2 &-ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ &-p -pg -print-file-name=bibliothèque -print-libgcc-file-name &-print-multi-directory -print-multi-lib &-print-prog-name=programme -print-search-dirs -Q &-save-temps -time

"Options d'optimisation" 4
    .IX Item "Optimization Options" &-falign-functions=n -falign-jumps=n &-falign-labels=n -falign-loops=n &-fbranch-probabilities -fcaller-saves -fcprop-registers &-fcse-follow-jumps -fcse-skip-blocks -fdata-sections &-fdelayed-branch -fdelete-null-pointer-checks &-fexpensive-optimizations -ffast-math -ffloat-store &-fforce-addr -fforce-mem -ffunction-sections &-fgcse -fgcse-lm -fgcse-sm &-finline-functions -finline-limit=n -fkeep-inline-functions &-fkeep-static-consts -fmerge-constants -fmerge-all-constants &-fmove-all-movables -fno-default-inline -fno-defer-pop &-fno-function-cse -fno-guess-branch-probability &-fno-inline -fno-math-errno -fno-peephole -fno-peephole2 &-funsafe-math-optimizations -fno-trapping-math &-fomit-frame-pointer -foptimize-register-move &-foptimize-sibling-calls -fprefetch-loop-arrays &-freduce-all-givs -fregmove -frename-registers &-frerun-cse-after-loop -frerun-loop-opt &-fschedule-insns -fschedule-insns2 &-fsingle-precision-constant -fssa -fssa-ccp -fssa-dce &-fstrength-reduce -fstrict-aliasing -fthread-jumps -ftrapv &-funroll-all-loops -funroll-loops &--param nom=valeur &-O -O0 -O1 -O2 -O3 -Os

"Options du préprocesseur" 4
    .IX Item "Preprocessor Options" &-$ -Aquestion=réponse -A-question[=réponse] &-C -dD -dI -dM -dN &-Dmacro[=déf] -E -H &-idirafter rép &-include fichier -imacros fichier &-iprefix fichier -iwithprefix rép &-iwithprefixbefore rép -isystem rép &-M -MM -MF -MG -MP -MQ -MT -nostdinc -P -remap &-trigraphs -undef -Umacro -Wp,option

"Option de l'assembleur" 4
    .IX Item "Assembler Option" &-Wa,option

"Options de l'éditeur de liens" 4
    .IX Item "Linker Options" & &nom-fichier-objet -lbibliothèque &-nostartfiles -nodefaultlibs -nostdlib &-s -static -static-libgcc -shared -shared-libgcc -symbolic &-Wl,option -Xlinker option &-u symbole

"Options de répertoires" 4
    .IX Item "Directory Options" &-Bpréfixe -Irép -I- -Lrép -specs=fichier

"Options de cible" 4
    .IX Item "Target Options" &-b machine -V version

"Options dépendantes de la machine" 4
    .IX Item "Machine Dependent Options" &Options M680x0 .Sp &-m68000 -m68020 -m68020-40 -m68020-60 -m68030 -m68040 &-m68060 -mcpu32 -m5200 -m68881 -mbitfield -mc68000 -mc68020 &-mfpa -mnobitfield -mrtd -mshort -msoft-float -mpcrel &-malign-int -mstrict-align .Sp &Options IM68hc1x .Sp &-m6811 -m6812 -m68hc11 -m68hc12 &-mauto-incdec -mshort -msoft-reg-count=nombre .Sp &Options s-1VAXs0 .Sp &-mg -mgnu -munix .Sp &Options s-1SPARCs0 .Sp &-mcpu=type-cpu &-mtune=type-cpu &-mcmodel=modèle-code &-m32 -m64 &-mapp-regs -mbroken-saverestore -mcypress &-mfaster-structs -mflat &-mfpu -mhard-float -mhard-quad-float &-mimpure-text -mlive-g0 -mno-app-regs &-mno-faster-structs -mno-flat -mno-fpu &-mno-impure-text -mno-stack-bias -mno-unaligned-doubles &-msoft-float -msoft-quad-float -msparclite -mstack-bias &-msupersparc -munaligned-doubles -mv8 .Sp &Options Convex .Sp &-mc1 -mc2 -mc32 -mc34 -mc38 &-margcount -mnoargcount &-mlong32 -mlong64 &-mvolatile-cache -mvolatile-nocache .Sp &Options s-1AMD29Ks0 .Sp &-m29000 -m29050 -mbw -mnbw -mdw -mndw &-mlarge -mnormal -msmall &-mkernel-registers -mno-reuse-arg-regs &-mno-stack-check -mno-storem-bug &-mreuse-arg-regs -msoft-float -mstack-check &-mstorem-bug -muser-registers .Sp &Options s-1ARMs0 .Sp &-mapcs-frame -mno-apcs-frame &-mapcs-26 -mapcs-32 &-mapcs-stack-check -mno-apcs-stack-check &-mapcs-float -mno-apcs-float &-mapcs-reentrant -mno-apcs-reentrant &-msched-prolog -mno-sched-prolog &-mlittle-endian -mbig-endian -mwords-little-endian &-malignment-traps -mno-alignment-traps &-msoft-float -mhard-float -mfpe &-mthumb-interwork -mno-thumb-interwork &-mcpu=nom -march=nom -mfpe=nom &-mstructure-size-boundary=n &-mbsd -mxopen -mno-symrename &-mabort-on-noreturn &-mlong-calls -mno-long-calls &-msingle-pic-base -mno-single-pic-base &-mpic-register=reg &-mnop-fun-dllimport &-mpoke-function-name &-mthumb -marm &-mtpcs-frame -mtpcs-leaf-frame &-mcaller-super-interworking -mcallee-super-interworking .Sp &Options s-1MN10200s0 .Sp &-mrelax .Sp &Options s-1MN10300s0 .Sp &-mmult-bug -mno-mult-bug &-mam33 -mno-am33 &-mno-crt0 -mrelax .Sp &Options M32R/D .Sp &-m32rx -m32r -mcode-model=type-modèle -msdata=type-sdata &-G nombre .Sp &Options M88K .Sp &-m88000 -m88100 -m88110 -mbig-pic &-mcheck-zero-division -mhandle-large-shift &-midentify-revision -mno-check-zero-division &-mno-ocs-debug-info -mno-ocs-frame-position &-mno-optimize-arg-area -mno-serialize-volatile &-mno-underscores -mocs-debug-info &-mocs-frame-position -moptimize-arg-area &-mserialize-volatile -mshort-data-nombre -msvr3 &-msvr4 -mtrap-large-shift -muse-div-instruction &-mversion-03.00 -mwarn-passed-structs .Sp &Options s-1RS/6000s0 et PowerPC .Sp &-mcpu=type-cpu &-mtune=type-cpu &-mpower -mno-power -mpower2 -mno-power2 &-mpowerpc -mpowerpc64 -mno-powerpc &-maltivec -mno-altivec &-mpowerpc-gpopt -mno-powerpc-gpopt &-mpowerpc-gfxopt -mno-powerpc-gfxopt &-mnew-mnemonics -mold-mnemonics &-mfull-toc -mminimal-toc -mno-fp-in-toc -mno-sum-in-toc &-m64 -m32 -mxl-call -mno-xl-call -mpe &-msoft-float -mhard-float -mmultiple -mno-multiple &-mstring -mno-string -mupdate -mno-update &-mfused-madd -mno-fused-madd -mbit-align -mno-bit-align &-mstrict-align -mno-strict-align -mrelocatable &-mno-relocatable -mrelocatable-lib -mno-relocatable-lib &-mtoc -mno-toc -mlittle -mlittle-endian -mbig -mbig-endian &-mcall-aix -mcall-sysv -mcall-netbsd &-maix-struct-return -msvr4-struct-return &-mabi=altivec -mabi=no-altivec &-mprototype -mno-prototype &-msim -mmvme -mads -myellowknife -memb -msdata &-msdata=opt -mvxworks -G nombre -pthread .Sp &Options s-1RTs0 .Sp &-mcall-lib-mul -mfp-arg-in-fpregs -mfp-arg-in-gregs &-mfull-fp-blocks -mhc-struct-return -min-line-mul &-mminimum-fp-blocks -mnohc-struct-return .Sp &Options s-1MIPSs0 .Sp &-mabicalls -march=type-cpu -mtune=type-cpu &-mcpu=type-cpu -membedded-data -muninit-const-in-rodata &-membedded-pic -mfp32 -mfp64 -mfused-madd -mno-fused-madd &-mgas -mgp32 -mgp64 &-mgpopt -mhalf-pic -mhard-float -mint64 -mips1 &-mips2 -mips3 -mips4 -mlong64 -mlong32 -mlong-calls -mmemcpy &-mmips-as -mmips-tfile -mno-abicalls &-mno-embedded-data -mno-uninit-const-in-rodata &-mno-embedded-pic -mno-gpopt -mno-long-calls &-mno-memcpy -mno-mips-tfile -mno-rnames -mno-stats &-mrnames -msoft-float &-m4650 -msingle-float -mmad &-mstats -EL -EB -G nombre -nocpp &-mabi=32 -mabi=n32 -mabi=64 -mabi=eabi &-mfix7000 -mno-crt0 -mflush-func=fonc -mno-flush-func .Sp &Options i386 et x86-64 .Sp &-mcpu=type-cpu -march=type-cpu -mfpmath=unité &-masm=dialecte -mno-fancy-math-387 &-mno-fp-ret-in-387 -msoft-float -msvr3-shlib &-mno-wide-multiply -mrtd -malign-double &-mpreferred-stack-boundary=nombre &-mmmx -msse -msse2 -msse-math -m3dnow &-mthreads -mno-align-stringops -minline-all-stringops &-mpush-args -maccumulate-outgoing-args -m128bit-long-double &-m96bit-long-double -mregparm=nombre -momit-leaf-frame-pointer &-mno-red-zone &-mcmodel=modèle-code &-m32 -m64 .Sp &Options s-1HPPAs0 .Sp &-march=type-architecture &-mbig-switch -mdisable-fpregs -mdisable-indexing &-mfast-indirect-calls -mgas -mjump-in-delay &-mlong-load-store -mno-big-switch -mno-disable-fpregs &-mno-disable-indexing -mno-fast-indirect-calls -mno-gas &-mno-jump-in-delay -mno-long-load-store &-mno-portable-runtime -mno-soft-float &-mno-space-regs -msoft-float -mpa-risc-1-0 &-mpa-risc-1-1 -mpa-risc-2-0 -mportable-runtime &-mschedule=type-cpu -mspace-regs .Sp &Options Intel 960 .Sp &-mtype-cpu -masm-compat -mclean-linkage &-mcode-align -mcomplex-addr -mleaf-procedures &-mic-compat -mic2.0-compat -mic3.0-compat &-mintel-asm -mno-clean-linkage -mno-code-align &-mno-complex-addr -mno-leaf-procedures &-mno-old-align -mno-strict-align -mno-tail-call &-mnumerics -mold-align -msoft-float -mstrict-align &-mtail-call .Sp &Options s-1DECs0 Alpha .Sp &-mno-fp-regs -msoft-float -malpha-as -mgas &-mieee -mieee-with-inexact -mieee-conformant &-mfp-trap-mode=mode -mfp-rounding-mode=mode &-mtrap-precision=mode -mbuild-constants &-mcpu=type-cpu -mtune=type-cpu &-mbwx -mmax -mfix -mcix &-mfloat-vax -mfloat-ieee &-mexplicit-relocs -msmall-data -mlarge-data &-mmemory-latency=temps .Sp &Options s-1DECs0 Alpha/VMS .Sp &-mvms-return-codes .Sp &Options Clipper .Sp &-mc300 -mc400 .Sp &Options H8/300 .Sp &-mrelax -mh -ms -mint32 -malign-300 .Sp &Options s-1SHs0 .Sp &-m1 -m2 -m3 -m3e &-m4-nofpu -m4-single-only -m4-single -m4 &-m5-64media -m5-64media-nofpu &-m5-32media -m5-32media-nofpu &-m5-compact -m5-compact-nofpu &-mb -ml -mdalign -mrelax &-mbigtable -mfmovd -mhitachi -mnomacsave &-mieee -misize -mpadstruct -mspace &-mprefergot -musermode .Sp &Options System V .Sp &-Qy -Qn -YP,chemins -Ym,rép .Sp &Options s-1ARCs0 .Sp &-EB -EL &-mmangle-cpu -mcpu=cpu -mtext=section-texte &-mdata=section-données -mrodata=section-données-lecture-seule .Sp &Options TMS320C3x/C4x .Sp &-mcpu=cpu -mbig -msmall -mregparm -mmemparm &-mfast-fix -mmpyi -mbk -mti -mdp-isr-reload &-mrpts=nombre -mrptb -mdb -mloop-unsigned &-mparallel-insns -mparallel-mpy -mpreserve-float .Sp &Options V850 .Sp &-mlong-calls -mno-long-calls -mep -mno-ep &-mprolog-function -mno-prolog-function -mspace &-mtda=n -msda=n -mzda=n &-mv850 -mbig-switch .Sp &Options s-1NS32Ks0 .Sp &-m32032 -m32332 -m32532 -m32081 -m32381 &-mmult-add -mnomult-add -msoft-float -mrtd -mnortd &-mregparam -mnoregparam -msb -mnosb &-mbitfield -mnobitfield -mhimem -mnohimem .Sp &Options s-1AVRs0 .Sp &-mmcu=mcu -msize -minit-stack=n -mno-interrupts &-mcall-prologues -mno-tablejump -mtiny-stack .Sp &Options MCore .Sp &-mhardlit -mno-hardlit -mdiv -mno-div -mrelax-immediates &-mno-relax-immediates -mwide-bitfields -mno-wide-bitfields &-m4byte-functions -mno-4byte-functions -mcallgraph-data &-mno-callgraph-data -mslow-bytes -mno-slow-bytes -mno-lsim &-mlittle-endian -mbig-endian -m210 -m340 -mstack-increment .Sp &Options s-1MMIXs0 .Sp &-mlibfuncs -mno-libfuncs -mepsilon -mno-epsilon -mabi=gnu &-mabi=mmixware -mzero-extend -mknuthdiv -mtoplevel-symbols &-melf -mbranch-predict -mno-branch-predict -mbase-addresses &-mno-base-addresses .Sp &Options s-1IA-64s0 .Sp &-mbig-endian -mlittle-endian -mgnu-as -mgnu-ld -mno-pic &-mvolatile-asm-stop -mb-step -mregister-names -mno-sdata &-mconstant-gp -mauto-pic -minline-divide-min-latency &-minline-divide-max-throughput -mno-dwarf2-asm &-mfixed-range=intervalle-registres .Sp &Options ID30V .Sp &-mextmem -mextmemory -monchip -mno-asm-optimize -masm-optimize &-mbranch-cost=n -mcond-exec=n .Sp &Options IS/390 et zSeries .Sp &-mhard-float -msoft-float -mbackchain -mno-backchain &-msmall-exec -mno-small-exec -mmvcle -mno-mvcle &-m64 -m31 -mdebug -mno-debug .Sp &Options s-1CRISs0 .Sp &-mcpu=cpu -march=cpu -mtune=cpu &-mmax-stack-frame=n -melinux-stacksize=n &-metrax4 -metrax100 -mpdebug -mcc-init -mno-side-effects &-mstack-align -mdata-align -mconst-align &-m32-bit -m16-bit -m8-bit -mno-prologue-epilogue -mno-gotplt &-melf -maout -melinux -mlinux -sim -sim2 .Sp &Options s-1PDP-11s0 .Sp &-mfpu -msoft-float -mac0 -mno-ac0 -m40 -m45 -m10 &-mbcopy -mbcopy-builtin -mint32 -mno-int16 &-mint16 -mno-int32 -mfloat32 -mno-float64 &-mfloat64 -mno-float32 -mabshi -mno-abshi &-mbranch-expensive -mbranch-cheap &-msplit -mno-split -munix-asm -mdec-asm .Sp &Options Xstormy16 .Sp &-msim .Sp &Options Xtensa .Sp &-mbig-endian -mlittle-endian &-mdensity -mno-density &-mmac16 -mno-mac16 &-mmul16 -mno-mul16 &-mmul32 -mno-mul32 &-mnsa -mno-nsa &-mminmax -mno-minmax &-msext -mno-sext &-mbooleans -mno-booleans &-mhard-float -msoft-float &-mfused-madd -mno-fused-madd &-mserialize-volatile -mno-serialize-volatile &-mtext-section-literals -mno-text-section-literals &-mtarget-align -mno-target-align &-mlongcalls -mno-longcalls

"Options de génération de code" 4
    .IX Item "Code Generation Options" &-fcall-saved-reg -fcall-used-reg &-ffixed-registre -fexceptions &-fnon-call-exceptions -funwind-tables &-fasynchronous-unwind-tables &-finhibit-size-directive -finstrument-functions &-fno-common -fno-ident -fno-gnu-linker &-fpcc-struct-return -fpic -fPIC &-freg-struct-return -fshared-data -fshort-enums &-fshort-double -fvolatile &-fvolatile-global -fvolatile-static &-fverbose-asm -fpack-struct -fstack-check &-fstack-limit-register=reg -fstack-limit-symbol=sym &-fargument-alias -fargument-noalias &-fargument-noalias-global -fleading-underscore -ftls-model=modèle


Options contrôlant le type de sortie

.IX Subsection "Options Controlling the Kind of Output" La compilation peut impliquer jusqu'à quatre étapes : prétraitement, compilation proprement dite, assemblage et édition des liens, toujours dans cet ordre. Les trois premières étapes s'appliquent à un fichier source individuel, et se terminent en produisant un fichier objet ; l'édition des liens combine tous les fichiers objets (ceux nouvellement compilés, et ceux spécifiés en entrée) en un fichier exécutable.

Pour tout fichier d'entrée, le suffixe du nom de fichier détermine le type de compilation qui est effectuée :
"fichier.c" 4
    .IX Item "file.c" Code source C qui doit être prétraité.

"fichier.i" 4
    .IX Item "file.i" Code source C qui ne devrait pas être prétraité.

"fichier.ii" 4
    .IX Item "file.ii" Code source &*(C+ qui ne devrait pas être prétraité.

"fichier.m" 4
    .IX Item "file.m" Code source Objective-C. Notez que vous devez lier un programme Objective-C avec la bibliothèque libobjc.a pour le faire fonctionner.

"fichier.mi" 4
    .IX Item "file.mi" Code source Objective-C qui ne devrait pas être prétraité.

"fichier.h" 4
    .IX Item "file.h" Fichier d'en-tête C (ne doit être ni compilé, ni lié).

"fichier.cc" 4
    .IX Item "file.cc"

"fichier.cp" 4
    .IX Item "file.cp"

"fichier.cxx" 4
    .IX Item "file.cxx"

"fichier.cpp" 4
    .IX Item "file.cpp"

"fichier.c++" 4
    .IX Item "file.c++"

"fichier.C" 4
    .IX Item "file.C"

Code source &*(C+ qui ne devrait pas être prétraité. Notez que pour .cxx, les deux dernières lettres doivent être littéralement x. De la même façon, &.C se réfère à un C littéral en majuscule.
"fichier.f" 4
    .IX Item "file.f"

"fichier.for" 4
    .IX Item "file.for"

"fichier.FOR" 4
    .IX Item "file.FOR"

Code source Fortran qui ne devrait pas être prétraité.
"fichier.F" 4
    .IX Item "file.F"

"fichier.fpp" 4
    .IX Item "file.fpp"

"fichier.FPP" 4
    .IX Item "fichier.FPP"

Code source Fortran qui doit être prétraité (avec le préprocesseur traditionnel).
"fichier.r" 4
    .IX Item "file.r" Code source Fortran qui doit être prétraité avec un préprocesseur s-1RATFORs0 (non inclus avec s-1GCCs0).

"fichier.ads" 4
    .IX Item "file.ads" Fichier de code source Ada qui contient une déclaration d'unité de bibliothèque (la déclaration d'un paquet, d'un sous-programme, ou d'un générique, ou d'une instanciation générique), ou une déclaration de renommage d'unité de bibliothèque (un paquet, un générique, ou une déclaration de renommage d'un sous-programme). De tels fichiers sont également appelés specs.

"fichier.adb" 4
    .IX Item "file.adb" Fichier de code source Ada qui contient le corps d'une unité de bibliothèque (le corps d'un sous-programme ou d'un paquetage). De tels fichiers sont également appelés corps (bodies).

"fichier.s" 4
    .IX Item "file.s" Code assembleur.

"fichier.S" 4
    .IX Item "file.S" Code assembleur qui doit être prétraité.

"autre" 4
    .IX Item "other" Un fichier objet à envoyer directement à l'éditeur de liens. Tout nom de fichier de suffixe non reconnu est traité de cette manière.


Vous pouvez spécifier explicitement le langage d'entrée avec l'option -x :
"-x langage" 4
    .IX Item "-x language" Spécifier explicitement le langage pour les fichiers d'entrée suivants (plutôt que de laisser choisir par le compilateur un langage par défaut basé sur le suffixe du nom de fichier). Cette option s'applique à tous les fichiers d'entrée subséquents jusqu'à l'option -x suivante. Les valeurs possibles pour langage sont : .Sp .Vb 7 & c c-header cpp-output & c++ c++-cpp-output & objective-c objc-cpp-output & assembler assembler-with-cpp & ada & f77 f77-cpp-input ratfor & java .Ve

"-x none" 4
    .IX Item "-x none" Désactiver toute spécification de langage, afin que les fichiers ultérieurs soient traités en fonction de leur suffixe de nom de fichier (comme si -x n'avait jamais été utilisé).

"-pass-exit-codes" 4
    .IX Item "-pass-exit-codes" Normalement, le programme gcc se terminera avec un code de retour de 1 si une phase de compilation quelconque renvoie un code de retour d'erreur. Si vous spécifiez -pass-exit-codes, le programme gcc renverra à la place le code d'erreur numériquement le plus grand produit par une phase se terminant sur une indication d'erreur.


Si vous ne désirez que certaines étapes de la compilation, vous pouvez utiliser &-x (ou des suffixes de noms de fichiers) pour indiquer à gcc où il doit démarrer, et une des options -c, -S ou -E pour lui dire où il doit s'arrêter. Notez que certaines combinaisons (par exemple &-x cpp-output -E) disent à gcc de ne rien faire du tout.
"-c" 4
    .IX Item "-c" Compiler ou assembler les fichiers sources, mais ne pas éditer les liens. L'étape d'édition des liens n'est tout simplement pas effectuée. La sortie finale du compilateur correspond à un fichier objet pour chaque fichier source. .Sp Par défaut, le nom du fichier objet pour un fichier source donné est formé en remplaçant les suffixes .c, .i, .s, etc., par .o. .Sp Les fichiers d'entrée non reconnus, ne requérant ni compilation ni assemblage, sont ignorés.

"-S" 4
    .IX Item "-S" S'arrêter après l'étape de la compilation proprement dite ; ne pas assembler. La sortie est un fichier de code assembleur pour chaque fichier d'entrée non assembleur spécifié. .Sp Par défaut, GCC crée le nom du fichier assembleur à partir du fichier source en remplaçant les suffixes .c, .i, etc., par .s. .Sp Les fichiers d'entrée ne requérant pas de compilation sont ignorés.

"-E" 4
    .IX Item "-E" S'arrêter après l'étape du prétraitement ; ne pas véritablement lancer le compilateur. La sortie est un code source prétraité, qui est envoyé vers la sortie standard. .Sp Les fichiers d'entrée ne requérant pas de compilation sont ignorés.

"-o fichier" 4
    .IX Item "-o file" Placer la sortie dans fichier. Cela s'applique quel que soit le type de sortie produite, que ce soit un fichier exécutable, un fichier objet, un fichier assembleur ou du code C prétraité. .Sp Puisqu'un seul fichier de sortie peut être spécifié, cela n'a aucun sens d'utiliser -o quand on compile plus d'un fichier d'entrée, à moins que l'on ne veuille produire un fichier exécutable en sortie. .Sp Si -o n'est pas spécifié, le comportement par défaut est de produire un fichier exécutable nommé a.out, un fichier objet pour source.suffixe nommé &source.o, son fichier assembleur dans source.s, et tout le code source C prétraité sur la sortie standard.

"-v" 4
    .IX Item "-v" Afficher (sur la sortie d'erreur standard) les commandes exécutées pour lancer les étapes de la compilation. Afficher également le numéro de version du programme pilote du compilateur, du préprocesseur et du compilateur proprement dit.

"-###" 4
    .IX Item "-###" Comme -v sauf que les commandes ne sont pas exécutées et que tous les arguments de commande sont protégés. C'est utile pour que les scripts shell puissent capturer les lignes de commandes générées par le pilote.

"-pipe" 4
    .IX Item "-pipe" Utiliser des tubes plutôt que des fichiers temporaires pour la communication entre les différentes phases de la compilation. Ceci ne marche pas sur certains systèmes où l'assembleur ne peut lire à partir d'un tube, mais cela ne pose aucun problème dans le cas de l'assembleur GNU.

"--help" 4
    .IX Item "--help" Afficher (sur la sortie standard) une description des options de ligne de commandes comprises par gcc. Si l'option -v est également spécifiée, alors --help sera également passé aux différents processus invoqués par gcc, afin qu'ils puissent afficher les options de ligne de commandes qu'ils acceptent. Si l'option -W est également spécifiée, alors les options de ligne de commandes qui ne possèdent pas de documentation associée seront également affichées.

"--target-help" 4
    .IX Item "--target-help" Afficher (sur la sortie standard) une description des options de ligne de commandes spécifiques à une cible pour chaque outil.


Compiler des programmes *(c+

.IX Subsection "Compiling Programs" Les fichiers sources &*(C+ utilisent par convention l'un des suffixes .C, &.cc, .cpp, .c++, .cp ou .cxx ; les fichiers *(C+ prétraités utilisent le suffixe .ii. s-1GCCs0 reconnaît les fichiers portant ces noms et les compile en tant que programmes *(C+ même si vous appelez le compilateur de la même manière que pour compiler des programmes C (d'habitude avec le nom gcc).

Néanmoins, les programmes *(C+ requièrent souvent des bibliothèques de classes de même qu'un compilateur comprenant le langage *(C+ (et dans certaines circonstances, vous pourriez compiler des programmes à partir de l'entrée standard, ou bien sans un suffixe qui les désigne comme étant des programmes *(C+). &g++ est un programme qui appelle s-1GCCs0 avec le langage par défaut fixé à *(C+, et il spécifie automatiquement une édition des liens utilisant la bibliothèque *(C+. Sur de nombreux systèmes, g++ est également installé sous le nom c++.

Quand vous compilez des programmes *(C+, vous pouvez spécifier la plupart des options de ligne de commandes que vous utiliseriez pour compiler des programmes dans n'importe quel langage, ou bien des options de ligne de commandes possédant une signification pour le C et les langages associés, ou encore des options qui ne sont significatives que pour les programmes *(C+.

Options contrôlant le dialecte c

.IX Subsection "Options Controlling C Dialect" Les options suivantes contrôlent le dialecte de C (ou des langages dérivés de C, comme *(C+ et Objective-C) que le compilateur accepte :
"-ansi" 4
    .IX Item "-ansi" Dans le mode C, supporter tous les programmes s-1ISOs0 C89. Dans le mode *(C+, supprimer les extensions s-1GNUs0 en conflit avec le *(C+ s-1ISOs0. .Sp Cela désactive certaines fonctionnalités de s-1GCCs0 qui sont incompatibles avec le C89 s-1ISOs0 (pendant la compilation de code C), ou du *(C+ standard (pendant la compilation de code *(C+), comme les mots-clés « asm » et « typeof », et les macros prédéfinies comme « unix » et « vax » qui identifient le type de système que vous utilisez. Cela active également la fonctionnalité rarement utilisée et non souhaitable des trigraphes s-1ISOs0. Pour le compilateur C, cette option désactive la reconnaissance des commentaires // de style *(C+, ainsi que le mot-clé « inline ». .Sp Les mots-clés alternatifs « __asm__ », « __extension__ », &« __inline__ » et « __typeof__ » continuent à fonctionner malgré &-ansi. Vous ne les utilisez naturellement pas dans un programme C s-1ISOs0, mais il est utile de les trouver dans des fichiers d'en-tête pouvant être inclus lors de compilations effectuées avec -ansi. Des macros prédéfinies alternatives comme « __unix__ » et « __vax__ » sont aussi disponibles, avec ou sans -ansi. .Sp L'option -ansi ne provoque pas le rejet arbitraire des programmes non ISO. Pour cela, -pedantic est requis en plus de -ansi. .Sp La macro « __STRICT_ANSI__ » est prédéfinie quand l'option -ansi est utilisée. Certains fichiers d'en-tête peuvent remarquer cette macro, et s'empêcher de déclarer certaines fonctions ou de définir certaines macros que ne demande pas le standard &s-1ISOs0, afin d'éviter d'interférer avec un programme quelconque qui utiliserait ces noms pour d'autres choses. .Sp Les fonctions qui devraient normalement être intégrées mais qui ne possèdent pas la sémantique définie par le C s-1ISOs0 (comme « alloca » et « ffs ») ne sont pas des fonctions intégrées quand -ansi est utilisé.

"-std=" 4
    .IX Item "-std=" Déterminer le standard du langage. Cette option n'est actuellement supportée que lors de la compilation de C. Il faut fournir une valeur pour cette option ; les valeurs possibles sont
    

"c89" 4
    .IX Item "c89"

"iso9899:1990" 4
    .IX Item "iso9899:1990"

&C89 s-1ISOs0 (même chose que -ansi).
"iso9899:199409" 4
    .IX Item "iso9899:199409" &C89 s-1ISOs0 comme modifié par l'amendement 1.

"c99" 4
    .IX Item "c99"

"c9x" 4
    .IX Item "c9x"

"iso9899:1999" 4
    .IX Item "iso9899:1999"

"iso9899:199x" 4
    .IX Item "iso9899:199x"

&C99 s-1ISOs0. Notez que ce standard n'est pas encore entièrement supporté ; voyez <http://gcc.gnu.org/gcc-3.1/c99status.html> pour plus d'informations. Les noms c9x et iso9899:199x sont dépréciés.
"gnu89" 4
    .IX Item "gnu89" Par défaut, C89 s-1ISOs0 + extensions s-1GNUs0 (incluant certaines fonctionnalités du C99).

"gnu99" 4
    .IX Item "gnu99"

"gnu9x" 4
    .IX Item "gnu9x"

&C99 s-1ISOs0 + extensions s-1GNUs0. Quand le C99 s-1ISOs0 sera complètement implémenté dans s-1GCCs0, il deviendra le standard par défaut. Le nom gnu9x est déprécié.
     .Sp Même si cette option n'est pas spécifiée, vous pouvez toujours utiliser certaines fonctionnalités de standards plus récents, pour autant qu'elles n'entrent pas en conflit avec les standards C précédents. Par exemple, vous pouvez utiliser « __restrict__ » même si -std=c99 n'est pas spécifié. .Sp Les options -std spécifiant une version du C s-1ISOs0 ont les mêmes effets que -ansi, sauf que les fonctionnalités ne faisant pas partie du C89 s-1ISOs0, mais qui appartiennent à la version spécifiée (par exemple, les commentaires // et le mot-clé « inline » du C99 s-1ISOs0) ne sont pas désactivées.

"-aux-info nom-fichier" 4
    .IX Item "-aux-info filename" Sortir dans le nom de fichier donné les déclarations prototypées pour toutes les fonctions déclarées et/ou définies dans une unité de traduction, ce qui inclut celles présentes dans les fichiers d'en-tête. Cette option est silencieusement ignorée pour tout langage autre que C. .Sp En plus des déclarations, le fichier indique, en commentaire, l'origine de chaque déclaration (fichier source et numéro de ligne), si la déclaration était implicite, prototypée ou non (I, N pour new (nouveau) ou &O pour old (ancien), respectivement, dans le premier caractère suivant le numéro de ligne et le signe deux-points), et si elle provenait d'une déclaration ou d'une définition (C ou F, respectivement, dans le caractère suivant). Dans le cas des définitions de fonctions, une liste d'arguments du style K&R suivis de leur déclaration est également fournie, à l'intérieur des commentaires, après la déclaration.

"-fno-asm" 4
    .IX Item "-fno-asm" Ne pas reconnaître « asm », « inline » ou « typeof » comme des mots-clés, afin que le code puisse utiliser ces mots comme identificateurs. Vous pouvez utiliser les mots-clés « __asm__ », « __inline__ » et « __typeof__ » à la place. -ansi implique -fno-asm. .Sp En *(C+, cet interrupteur n'affecte que le mot-clé « typeof », puisque « asm » et « inline » sont des mots-clés standard. Vous pourriez utiliser l'indicateur -fno-gnu-keywords à la place, qui a le même effet. Dans le mode C99 (-std=c99 ou -std=gnu99), cet interrupteur n'affecte que les mots-clés « asm » et « typeof », puisque &« inline » est un mot-clé standard du C99 s-1ISOs0.

"-fno-builtin" 4
    .IX Item "-fno-builtin"

"-fno-builtin-fonction (C et Objective-C uniquement)" 4
    .IX Item "-fno-builtin-function (C and Objective-C only)"

Ne pas reconnaître les fonctions intégrées qui ne commencent pas par le préfixe __builtin_. .Sp &s-1GCCs0 génère normalement du code spécial pour manipuler certaines fonctions intégrées plus efficacement ; par exemple, les appels à « alloca » peuvent devenir des instructions uniques qui ajustent la pile directement, et les appels à « memcpy » peuvent devenir des boucles de copie en ligne. Le code résultant est souvent plus concis et rapide mais, puisque les appels de fonction n'apparaissent plus en tant que tels, vous ne pouvez pas placer de point d'arrêt sur ces appels, ni ne pouvez modifier le comportement des fonctions en les liant à une bibliothèque différente. .Sp En *(C+, -fno-builtin est toujours utilisé. L'option -fbuiltin n'a aucun effet. Donc, en *(C+, la seule façon d'obtenir les bénéfices d'optimisation des fonctions intégrées est d'appeler la fonction en utilisant le préfixe __builtin_. La Bibliothèque Standard s-1GNUs0 *(C+ utilise des fonctions intégrées pour implémenter de nombreuses fonctions (comme « std::strchr »), pour que vous obteniez automatiquement un code efficace. .Sp Avec l'option -fno-builtin-fonction, non disponible lors de la compilation de *(C+, seule la fonction intégrée fonction est désactivée. fonction ne doit pas commencer par __builtin_. Si une fonction désignée n'est pas intégrée dans cette version de s-1GCCs0, cette option est ignorée. Il n'y a pas d'option -fbuiltin-function correspondante ; si vous voulez activer des fonctions intégrées de façon sélective quand vous utilisez -fno-builtin ou &-ffreestanding, vous pouvez définir des macros comme : .Sp .Vb 2 & #define abs(n) __builtin_abs ((n)) & #define strcpy(d, s) __builtin_strcpy ((d), (s)) .Ve
"-fhosted" 4
    .IX Item "-fhosted" Supposer que la compilation a lieu dans un environnement hôte. Cela implique &-fbuiltin. Un environnement hôte est un environnement dans lequel la bibliothèque standard entière est disponible, et dans lequel « main » a un type de retour « int ». Les exemples se rencontrent pratiquement partout sauf dans un noyau. C'est équivalent à -fno-freestanding.

"-ffreestanding" 4
    .IX Item "-ffreestanding" Supposer que la compilation a lieu dans un environnement autonome. Cela implique -fno-builtin. Un environnement autonome est un environnement dans lequel la bibliothèque standard peut ne pas exister, et où le démarrage du programme n'est pas nécessairement placé dans « main ». L'exemple le plus évident est un noyau de système d'exploitation. C'est équivalent à -fno-hosted.

"-trigraphs" 4
    .IX Item "-trigraphs" Supporter les trigraphes C s-1ISOs0 C. L'option -ansi (et les options -std pour une conformité stricte au C s-1ISOs0) implique -trigraphs.

"-no-integrated-cpp" 4
    .IX Item "-no-integrated-cpp" Invoquer le cpp externe durant la compilation. Le comportement par défaut est d'utiliser le cpp intégré (cpp interne). Cette option permet également l'utilisation d'un cpp fourni par l'utilisateur via l'option -B. Cet indicateur est applicable dans les modes C et *(C+. .Sp Nous ne garantissons pas le maintien de cette option dans le futur, et nous pourrions modifier sa sémantique.

"-traditional" 4
    .IX Item "-traditional" Essayer de supporter certains aspects des compilateurs C traditionnels. Spécifiquement :
    

"(bu" 4
    Toutes les déclarations « extern » prennent effet globalement même si elles sont écrites à l'intérieur d'une définition de fonction. Cela inclut les déclarations implicites de fonctions.

"(bu" 4
    Les mots-clés plus récents « typeof », « inline », « signed », « const » et « volatile » ne sont pas reconnus. (Vous pouvez toujours utiliser les mots-clés alternatifs comme « __typeof__ », « __inline__ », etc.)

"(bu" 4
    Les comparaisons entre pointeurs et entiers sont toujours autorisées.

"(bu" 4
    Les types entiers « unsigned short » et « unsigned char » sont promus en « unsigned int ».

"(bu" 4
    Les littéraux à virgule flottante (flottants) hors intervalle ne constituent pas une erreur.

"(bu" 4
    Certaines constructions que s-1ISOs0 considère comme un unique numéro de prétraitement invalide, comme 0xe-0xd, sont traités à la manière des expressions.

"(bu" 4
    Les « constantes » de type chaîne de caractères ne sont pas nécessairement constantes ; elles sont stockées dans un espace accessible en écriture, et les emplacements des constantes visiblement identiques sont alloués séparément. (Cela a le même effet que &-fwritable-strings.)

"(bu" 4
    Toutes les variables automatiques non déclarées « register » sont préservées lors d'un appel à « longjmp ». Habituellement, le C s-1GNUs0 suit le C s-1ISOs0 : les variables automatiques non déclarées « volatile » peuvent être corrompues.

"(bu" 4
    Les séquences d'échappement de caractère ex et ea s'évaluent comme les caractères littéraux x et a respectivement. Sans &-traditional, ex est un préfixe de la représentation hexadécimale d'un caractère, et ea produit une sonnerie.
     .Sp Cette option est dépréciée et pourrait être supprimée. .Sp Vous pourriez utiliser -fno-builtin aussi bien que -traditional si votre programme utilise des noms qui sont normalement ceux des fonctions intégrées du C s-1GNUs0 à d'autres fins. .Sp Vous ne pouvez pas utiliser -traditional si vous incluez des fichiers d'en-tête qui se basent sur des fonctionnalités du C s-1ISOs0. Certains vendeurs commencent à délivrer des systèmes avec des fichiers d'en-tête C s-1ISOs0, et vous ne pouvez pas utiliser -traditional sur de tels systèmes pour compiler des fichiers qui incluent des fichiers d'en-tête système. .Sp L'option -traditional active également -traditional-cpp.

"-traditional-cpp" 4
    .IX Item "-traditional-cpp" Essayer de supporter certains aspects des préprocesseurs C traditionnels. Voyez le manuel de s-1GNUs0 s-1CPPs0 pour les détails.

"-fcond-mismatch" 4
    .IX Item "-fcond-mismatch" Autoriser des expressions conditionnelles avec des types non concordants dans les deuxième et troisième arguments. La valeur d'une telle expression est void. Cette option n'est pas supportée pour le *(C+.

"-funsigned-char" 4
    .IX Item "-funsigned-char" Permettre au type « char » d'être non signé, comme « unsigned char ». .Sp Chaque type de machine a son propre avis concernant ce que doit représenter le type « char ». C'est soit « unsigned char » par défaut, soit « signed char » par défaut. .Sp Idéalement, un programme portable devrait toujours utiliser « signed char » ou « unsigned char » quand il dépend du signe d'un objet. Mais beaucoup de programmes ont été écrits pour utiliser des « char » simples et s'attendent à ce qu'ils soient signés, ou à ce qu'il soient non signés, en fonction des machines pour lesquelles le programme a été écrit. Cette option, et son inverse, vous permettent de créer un programme qui fonctionne avec le comportement opposé par défaut. .Sp Le type « char » est toujours un type distinct de « signed char » et « unsigned char », même si son comportement est toujours celui d'un de ces deux là.

"-fsigned-char" 4
    .IX Item "-fsigned-char" Permettre au type « char » d'être signé, comme « signed char ». .Sp Notez que c'est équivalent à -fno-unsigned-char, qui est la forme négative de -funsigned-char. De même, l'option &-fno-signed-char est équivalente à -funsigned-char.

"-fsigned-bitfields" 4
    .IX Item "-fsigned-bitfields"

"-funsigned-bitfields" 4
    .IX Item "-funsigned-bitfields"

"-fno-signed-bitfields" 4
    .IX Item "-fno-signed-bitfields"

"-fno-unsigned-bitfields" 4
    .IX Item "-fno-unsigned-bitfields"

Ces options contrôlent si un champ-bit est signé ou non signé, quand la déclaration n'utilise ni « signed » ni « unsigned ». Par défaut, un tel champ-bit d'un bit est signé, parce que c'est logique : les types entiers de bases tels que « int » sont des types signés. .Sp Néanmoins, lorsque -traditional est utilisé, les champs-bits sont tous considérés comme étant non signés.
"-fwritable-strings" 4
    .IX Item "-fwritable-strings" Conserve les constantes de type chaîne de caractères dans le segment de données accessible en écriture et ne les rend pas uniques, dans un but de compatibilité avec d'anciens programmes qui supposent qu'ils peuvent écrire dans des constantes de type chaîne de caractères. L'option -traditional a également cet effet. .Sp Écrire dans des constantes de type chaîne de caractères est une très mauvaise idée ; les « constantes » devraient réellement l'être.

"-fallow-single-precision" 4
    .IX Item "-fallow-single-precision" Ne pas promouvoir des opérations mathématiques simple précision en double précision, même lors d'une compilation avec -traditional. .Sp Le C traditionnel K&R C promeut toutes les opérations flottantes en double précision, quelle que soit la taille des opérandes. Sur l'architecture pour laquelle vous compilez, la simple précision peut être plus rapide que la double précision. Si vous devez utiliser -traditional, mais que vous voulez utiliser des opérations en simple précision quand les opérandes sont en simple précision, utilisez cette option. Cette option n'a aucun effet lors d'une compilation utilisant les conventions C s-1ISOs0 ou s-1GNUs0 (comportement par défaut).

"-fshort-wchar" 4
    .IX Item "-fshort-wchar" Surcharger le type sous-jacent de wchar_t pour qu'il soit short unsigned int au lieu du comportement par défaut pour la cible. Cette option est utile pour la construction de programmes devant tourner sous s-1WINEs0.


Options contrôlant le dialecte *(c+

.IX Subsection "Options Controlling Dialect" Cette section décrit les options de ligne de commandes qui ne sont significatives que pour les programmes *(C+, mais vous pouvez également utiliser la plupart des options du compilateur s-1GNUs0 quel que soit le langage dans lequel votre programme est écrit. Par exemple, vous pouvez compiler un fichier « premièreClasse.C » comme ceci :

.Vb 1 & g++ -g -frepo -O -c premièreClasse.C .Ve

Dans cet exemple, seule -frepo est une option destinée exclusivement aux programmes *(C+ ; vous pouvez utiliser les autres options avec n'importe quel langage supporté par s-1GCCs0.

Voici une liste des options qui sont disponibles uniquement lors de la compilation de programmes *(C+ :
"-fno-access-control" 4
    .IX Item "-fno-access-control" Désactiver tout contrôle d'accès. Cet interrupteur est principalement utile pour contourner des bogues dans le code de contrôle d'accès.

"-fcheck-new" 4
    .IX Item "-fcheck-new" Vérifier que le pointeur renvoyé par « operator new » est non-null avant de tenter de modifier la mémoire allouée. Le document de travail actuel requiert que « operator new » ne renvoie jamais un pointeur null, de sorte que cette vérification n'est normalement pas nécessaire. .Sp Une alternative à l'utilisation de cette option est de spécifier que votre « operator new » ne lance aucune exception ; si vous le déclarez f(BIthrow(), G++ vérifiera la valeur de retour. Voyez également new (nothrow).

"-fconserve-space" 4
    .IX Item "-fconserve-space" Placer les variables globales non initialisées ou initialisées à l'exécution dans le segment commun, comme en C. Cela économise de l'espace dans l'exécutable au prix d'un non diagnostic des définitions dupliquées. Si vous compilez avec ce drapeau et que votre programme se plante mystérieusement après que « main() » se soit terminé, il se peut qu'un objet est détruit deux fois du fait de la fusion de deux définitions. .Sp Cette option n'est plus utile sur la plupart des cibles, maintenant que le support a été ajouté pour placer des variables dans le s-1BSSs0 sans les rendre communes.

"-fno-const-strings" 4
    .IX Item "-fno-const-strings" Donner aux chaînes de caractères constantes le type « char * » au lieu du type « const char * ». Par défaut, G++ utilise le type « const char * » comme requis par le standard. Même si vous utilisez -fno-const-strings, vous ne pouvez pas réellement modifier la valeur d'une chaîne de caractères constantes, à moins que vous n'utilisiez également &-fwritable-strings. .Sp Cette option pourrait être supprimée dans une prochaine version de G++. Pour une portabilité maximale, vous devriez structurer votre code de sorte qu'il fonctionne avec des chaînes de caractères constantes qui ont le type « const char * ».

"-fdollars-in-identifiers" 4
    .IX Item "-fdollars-in-identifiers" Accepter les $ dans les identificateurs. Vous pouvez également interdire explicitement l'utilisation du $ avec l'option -fno-dollars-in-identifiers. (s-1GNUs0 C autorise les $ par défaut sur la plupart des systèmes cibles, mais il y a quelques exceptions.) Le C traditionnel permettait au caractère $ de faire partie des identificateurs. Néanmoins, le C et le *(C+ s-1ISOs0 interdisent le $ dans les identificateurs.

"-fno-elide-constructors" 4
    .IX Item "-fno-elide-constructors" Le standard *(C+ permet à une implémentation d'omettre de créer un objet temporaire qui n'est utilisé que pour initialiser un autre objet du même type. Spécifier cette option désactive cette optimisation, et force G++ à toujours appeler le constructeur de copie.

"-fno-enforce-eh-specs" 4
    .IX Item "-fno-enforce-eh-specs" Ne pas rechercher de violation des spécifications d'exceptions au moment de l'exécution. Cette option viole le standard *(C+, mais peut être utile pour réduire la taille du code dans du code de production, un peu comme quand on définit s-1NDEBUGs0. Le compilateur optimisera toujours en fonction des spécifications d'exceptions.

"-fexternal-templates" 4
    .IX Item "-fexternal-templates" Forcer les #pragma interface et implementation à s'appliquer aux instanciations de modèles ; les instances de modèle sont émises ou pas en fonction de l'emplacement de la définition de modèle. .Sp Cette option est dépréciée.

"-falt-external-templates" 4
    .IX Item "-falt-external-templates" Similaire à -fexternal-templates, mais les instances de modèle sont émises ou pas en fonction de l'emplacement où elles sont instanciées pour la première fois. .Sp Cette option est dépréciée.

"-ffor-scope" 4
    .IX Item "-ffor-scope"

"-fno-for-scope" 4
    .IX Item "-fno-for-scope"

Si -ffor-scope est spécifié, la portée des variables déclarées dans une instruction-for-init est limitée à la boucle for elle-même, comme spécifié par le standard *(C+ standard. Si -fno-for-scope est spécifié, la portée des variables déclarées dans une instruction-for-init s'étend jusqu'à la fin de la portée entourante, comme c'était le cas dans d'anciennes versions de G++, et dans d'autres implémentations (traditionnelles) de *(C+. .Sp Le comportement par défaut si aucune option n'est fournie est de suivre le standard, mais également d'autoriser (et d'émettre un avertissement pour) un code écrit dans l'ancien style qui serait autrement invalide, ou qui aurait un comportement différent.
"-fno-gnu-keywords" 4
    .IX Item "-fno-gnu-keywords" Ne pas reconnaître « typeof » comme un mot-clé, afin que le code puisse utiliser ce mot comme identificateur. Vous pouvez utiliser le mot-clé « __typeof__ » à la place. &-ansi implique -fno-gnu-keywords.

"-fno-implicit-templates" 4
    .IX Item "-fno-implicit-templates" Ne jamais émettre de code pour des modèles non en ligne (inline) qui sont instanciés implicitement (c.-à-d. par leur usage) ; n'émettre de code que pour les instanciations explicites.

"-fno-implicit-inline-templates" 4
    .IX Item "-fno-implicit-inline-templates" Ne pas émettre de code pour des instanciations implicites de modèles en ligne. Le comportement par défaut est de traiter les inlines différemment de sorte que des compilations avec ou sans optimisation auront besoin du même ensemble d'instanciations implicites.

"-fno-implement-inlines" 4
    .IX Item "-fno-implement-inlines" Pour économiser de l'espace, ne pas émettre de copies hors ligne de fonctions inline contrôlées par #pragma implementation. Cela provoquera des erreurs lors de l'édition de liens si ces fonctions ne sont pas mises en ligne partout où elles sont appelées.

"-fms-extensions" 4
    .IX Item "-fms-extensions" Désactiver les avertissements pédants sur les constructions utilisées dans les s-1MFCs0 (NdT : Microsoft Foundation Classes ?), comme le int implicite ou l'obtention d'un pointeur vers une fonction membre via une syntaxe non standard.

"-fno-nonansi-builtins" 4
    .IX Item "-fno-nonansi-builtins" Désactiver les déclarations intégrées de fonctions qui ne sont pas prévues par le C &s-1ANSI/ISOs0. Celles-ci incluent « ffs », « alloca », « _exit », « index », « bzero », « conjf », et d'autres fonctions associées.

"-fno-operator-names" 4
    .IX Item "-fno-operator-names" Ne pas traiter les mots-clés nom d'opérateur « and », « bitand », « bitor », « compl », « not », « or » et « xor » comme des synonymes pour les mots-clés.

"-fno-optional-diags" 4
    .IX Item "-fno-optional-diags" Désactiver les messages de diagnostic pour lesquels le standard ne prévoit pas d'obligation d'émission de la part du compilateur. Actuellement, le seul diagnostic de ce type émis par G++ est celui d'un nom possédant de multiples significations à l'intérieur d'une classe.

"-fpermissive" 4
[table][row]    [col].IX Item "-fpermissive" Rabaisser les messages sur du code non conforme d'erreurs en avertissements. Par défaut, G++ utilise effectivement -pedantic-errors sans -pedantic ; cette option renverse ce fait. Ce comportement et cette option sont surchargés pa
Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?