Provided by: manpages-zh_1.5.2-1_all bug

NAME

       gcc, g++ - GNU  C  C++  (egcs-1.1.2)

 (SYNOPSIS)
       gcc [ option | filename ]...
       g++ [ option | filename ]...

 (WARNING)
          GNU C   ,     .

          ,    .   ,   Info , Info    .

                       ,      .   ,   Info man ,    GNU CC        .  GNU   man
       ,     .

             ,   Info  `gcc' Using and Porting GNU CC (for version 2.0) (  GNU
       CC 2.0)  .     Texinfo gcc.texinfo.

 (DESCRIPTION)
       C   C++    .   :  (preprocessing), (compilation), (assembly) (linking).
       ,    ,   :

       gcc       (.i)  C ,   C   .

       g++       (.i)  C++ ,   C++   .

             :

       .c    C ; , ,
       .C    C++ ; , ,
       .cc   C++ ; , ,
       .cxx  C++ ; , ,
       .m    Objective-C ; , ,
       .i     C ; ,
       .ii    C++ ; ,
       .s    ;
       .S    ; ,
       .h    ;

             (linker).  :

       .o     (Object file)
       .a     (Archive file)

        -c, -S, -E  (     ),    .    , .o , -l ,     ( .o .a )      .

 (OPTIONS)
          : `-dr'   `-d -r '.

        `-f'  `-W'      : -fname -fno-name ( -Wname -Wno-name).       .

            ,   ,      .

        (Overall Option)
              -c -S -E -o file -pipe -v -x language

        (Language Option)
              -ansi -fall-virtual -fcond-mismatch -fdollars-in-identifiers
              -fenum-int-equiv -fexternal-templates -fno-asm -fno-builtin
              -fhosted -fno-hosted -ffreestanding -fno-freestanding
              -fno-strict-prototype -fsigned-bitfields -fsigned-char
              -fthis-is-variable -funsigned-bitfields -funsigned-char
              -fwritable-strings -traditional -traditional-cpp -trigraphs

        (Warning Option)
              -fsyntax-only -pedantic -pedantic-errors -w -W -Wall
              -Waggregate-return -Wcast-align -Wcast-qual -Wchar-subscript
              -Wcomment -Wconversion -Wenum-clash -Werror -Wformat
              -Wid-clash-len -Wimplicit -Wimplicit-int
              -Wimplicit-function-declaration -Winline -Wlong-long -Wmain
              -Wmissing-prototypes -Wmissing-declarations -Wnested-externs
              -Wno-import -Wparentheses -Wpointer-arith -Wredundant-decls
              -Wreturn-type -Wshadow -Wstrict-prototypes -Wswitch
              -Wtemplate-debugging -Wtraditional -Wtrigraphs -Wuninitialized
              -Wunused -Wwrite-strings

        (Debugging Option)
              -a -dletters -fpretend-float -g -glevel -gcoff -gxcoff -gxcoff+
              -gdwarf -gdwarf+ -gstabs -gstabs+ -ggdb -p -pg -save-temps
              -print-file-name=library -print-libgcc-file-name
              -print-prog-name=program

        (Optimization Option)
              -fcaller-saves -fcse-follow-jumps -fcse-skip-blocks
              -fdelayed-branch -felide-constructors -fexpensive-optimizations
              -ffast-math -ffloat-store -fforce-addr -fforce-mem
              -finline-functions -fkeep-inline-functions -fmemoize-lookups
              -fno-default-inline -fno-defer-pop -fno-function-cse -fno-inline
              -fno-peephole -fomit-frame-pointer -frerun-cse-after-loop
              -fschedule-insns -fschedule-insns2 -fstrength-reduce
              -fthread-jumps -funroll-all-loops -funroll-loops -O -O2 -O3

        (Preprocessor Option)
              -Aassertion -C -dD -dM -dN -Dmacro[=defn] -E -H -idirafter dir
              -include file -imacros file -iprefix file -iwithprefix dir -M
              -MD -MM -MMD -nostdinc -P -Umacro -undef

        (Assembler Option)
              -Wa,option

        (Linker Option)
              -llibrary -nostartfiles -nostdlib -static -shared -symbolic
              -Xlinker option -Wl,option -u symbol

        (Directory Option)
              -Bprefix -Idir -I- -Ldir

        (Target Option)
              -b  machine -V version

        (Configuration Dependent Option)
              M680x0
              -m68000 -m68020 -m68020-40 -m68030 -m68040 -m68881 -mbitfield
              -mc68000 -mc68020 -mfpa -mnobitfield -mrtd -mshort -msoft-float

              VAX
              -mg -mgnu -munix

              SPARC
              -mepilogue -mfpu -mhard-float -mno-fpu -mno-epilogue
              -msoft-float -msparclite -mv8 -msupersparc -mcypress

              Convex
              -margcount -mc1 -mc2 -mnoargcount

              AMD29K
              -m29000 -m29050 -mbw -mdw -mkernel-registers -mlarge -mnbw
              -mnodw -msmall -mstack-check -muser-registers

              M88K
              -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-num -msvr3 -msvr4 -mtrap-large-shift
              -muse-div-instruction -mversion-03.00 -mwarn-passed-structs

              RS6000
              -mfp-in-toc -mno-fop-in-toc

              RT
              -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

              MIPS
              -mcpu=cpu type -mips2 -mips3 -mint64 -mlong64 -mmips-as -mgas
              -mrnames -mno-rnames -mgpopt -mno-gpopt -mstats -mno-stats
              -mmemcpy -mno-memcpy -mno-mips-tfile -mmips-tfile -msoft-float
              -mhard-float -mabicalls -mno-abicalls -mhalf-pic -mno-half-pic
              -G num -nocpp

              i386
              -m486 -mno-486 -msoft-float -mno-fp-ret-in-387

              HPPA
              -mpa-risc-1-0 -mpa-risc-1-1 -mkernel -mshared-libs
              -mno-shared-libs -mlong-calls -mdisable-fpregs
              -mdisable-indexing -mtrailing-colon

              i960
              -mcpu-type -mnumerics -msoft-float -mleaf-procedures
              -mno-leaf-procedures -mtail-call -mno-tail-call -mcomplex-addr
              -mno-complex-addr -mcode-align -mno-code-align -mic-compat
              -mic2.0-compat -mic3.0-compat -masm-compat -mintel-asm
              -mstrict-align -mno-strict-align -mold-align -mno-old-align

              DEC Alpha
              -mfp-regs -mno-fp-regs -mno-soft-float -msoft-float

              System V
              -G -Qy -Qn -YP,paths -Ym,dir

        (Code Generation Option)
              -fcall-saved-reg -fcall-used-reg -ffixed-reg
              -finhibit-size-directive -fnonnull-objects -fno-common
              -fno-ident -fno-gnu-linker -fpcc-struct-return -fpic -fPIC
              -freg-struct-return -fshared-data -fshort-enums -fshort-double
              -fvolatile -fvolatile-global -fverbose-asm

 (Overall Option)
       -x language
                language  (     ).   ,     `-x' . language `c', `objective-c',
              `c-header',       `c++',       `cpp-output',        `assembler',
              `assembler-with-cpp'.

       -x none
                   , (   `-x' ).

          (, , , )  , `-x'  ( )  gcc   ,  `-c', `-S',  `-E' gcc   . ,   (, `-x
       cpp-output -E')  gcc  .

       -c        ,   .      .

              , GCC   `.o'   `.c', `.i', `.s', ,  .  -o    .

              GCC -c        (    ).

       -S       ,  .     ,    .

              , GCC   `.o'   `.c', `.i', ,  .  -o    .

              GCC      .

       -E       ,  .    .

              GCC      .

       -o file
                 file.    GCC   ,  , ,    C .

                  ,     ,  `-o'   ,    .

                  `-o'  ,     :    `a.out',    `source.suffix'     `source.o',
              `source.s',   C   .

       -v     ( )      .    , ,   .

       -pipe             .         ,  . GNU    .

 (LANGUAGE OPTIONS)
              C "":

       -ansi    ANSI  C .

                  GNU C    ANSI C  ,  asm, inline  typeof ,   unix  vax      .
              ANSI trigraph ,   `$'    .

                `-ansi' ,    , __asm__, __extension__, __inline__   __typeof__
              .        ANSI  C   ,   ,         ,    `-ansi'  .    ,   __unix__
              __vax__,    `-ansi' ,  .

               `-ansi'       ANSI,   `-pedantic'   `-ansi'   .

               `-ansi'   ,     __STRICT_ANSI__ .    ,    ,    ,       ANSI   ;
              .

       -fno-asm
                asm, inline  typeof  ,      .  __asm__, __inline__  __typeof__
              .  `-ansi'  `-fno-asm'.

       -fno-builtin
                     (built-in function).        _exit,  abort,  abs,  alloca,
              cos,  exit,  fabs,  labs,  memcmp,  memcpy,  sin,  sqrt, strcmp,
              strcpy,  strlen.

              `-ansi'    alloca  _exit  .

       -fhosted
                ;    `-fbuiltin' , main  .

       -ffreestanding
                ;    `-fno-builtin' , main   .

              (:    (hosted   environment)      ,   main    int   ,          .
              (freestanding environment)  ,     main,    .   gcc   )

       -fno-strict-prototype
                  ,  `int foo ();',  C  --     . ( C++).  ,   foo  C++     .

       -trigraphs
               ANSI C trigraphs. `-ansi'   `-trigraphs'.

       -traditional
                 C   .  GNU C ,  ,   ,    .

                  :     C++     (    C),     `-traditional'       ,   this   .
              `-fthis-is-variable'    .

       -traditional-cpp
                 C   .  ,   `-traditional'    .

       -fdollars-in-identifiers
                (identifier)    `$'   (  C++).   `-fno-dollars-in-identifiers'
              `$' .  (GNU C++     `$' ,  .)

       -fenum-int-equiv
               int    (enumeration)   ( C++).  GNU C++   enum  int  ,  .

       -fexternal-templates
                 (template  declaration)     ( C++),      (template function),
              .    ,  ,  `#pragma implementation' ()  `#pragma interface' ().

                  `-fexternal-templates'   ,   (template   instantiation)    .
              .   typedef  ,     .  ,     `-fno-external-templates',     .

       -fall-virtual
                  .   ( new delete )    .

                      .   ,        ;    .

       -fcond-mismatch
                       .       void.

       -fthis-is-variable
                 this   ( C++).       C++ ,    `this'  . ,   ,    this   .   ,
              `-fthis-is-variable'     .

       -funsigned-char
               char   ,  unsigned char.

                   char .     unsigned char signed char .

              ,     ,      signed char unsigned char.        char,     ( ,  ).
              ,   ,  .

              char signed char  unsigned char,      .

       -fsigned-char
               char   ,  signed char.

                  `-fno-unsigned-char', the negative form of `-funsigned-char'
              .  , `-fno-signed-char'  `-funsigned-char'.

       -fsigned-bitfields

       -funsigned-bitfields

       -fno-signed-bitfields

       -fno-unsigned-bitfields
                  `signed'  `unsigned' ,      (bitfield)  .  ,    ,     , int,
              .

              ,   `-traditional' ,    .

       -fwritable-strings
                 ,    .      ,     . `-traditional'    .

                   ; ""  .

 (Preprocessor Option)
          C ,     ,  C  .

         `-E' , GCC   .      `-E'    ,      .

       -include file
                   ,    file, ,  file    .    `-D'  `-U'    `-include file'  ,
              .  `-include'  `-imacros'    .

       -imacros file
                  ,    file,   .  file  ,  `-imacros  file'         file     ,
              .     `-imacrosfile'   ,     `-D'   `-U'  ,       .   `-include'
              `-imacros'    .

       -idirafter dir
                dir   .      (`-I'  )   ,   .

       -iprefix prefix
               prefix   `-iwithprefix'   .

       -iwithprefix dir
                  .   prefix  dir  ,  prefix   `-iprefix'  .

       -nostdinc
                   .   `-I'    ( ,  ).

                `-nostdinc'  `-I-' ,         .

       -nostdinc++
                C++    ,     .  (  `libg++'   .)

       -undef    . (  ).

       -E      C .    C ,   .

       -C         .  `-E'  .

       -P         `#line' .  `-E'  .

       -M  [ -MG ]
                   make  ,     .   ,    make ,    (target)     ,  (dependency)
              `#include  .    ,  ,  `\'-  .   ,   C .

              `-M'  `-E' .

              `-MG'       ,   .   `-M'  .

       -MM  [ -MG ]
               `-M'  ,    ,   `#include "file"'.     `#include <file>'.

       -MD     `-M'  ,      ,  `.o'  `.d' .     --`-MD'  `-M'    .

              Mach   `md'   `.d' ,   `make'    .

       -MMD    `-MD'  ,    ,  .

       -H         , GCC    .

       -Aquestion(answer)
                  ,   `#if  #question(answer)',     (Assert)  question answer.
              -A-'       .

       -Dmacro
                macro,      `1'.

       -Dmacro=defn
                macro    defn.    `-D'   `-U'   .

       -Umacro
                macro.  `-U'    `-D'   ,    `-include'  `-imacros' .

       -dM          (    ).     `-E'  .

       -dD          ,    .

       -dN     `-dD' ,      .    `#define name

 (ASSEMBLER OPTION)
       -Wa,option
                option  .   option  ,      .

 (LINKER OPTION)
            ,    .     ,   .

       object-file-name
                   a special recognized suffix, GCC       . ( ,   ).  GCC    ,
              .

       -llibrary
                library  .

                    ,      `liblibrary.a'.           .

                  ,    `-L'    .

                    --  (archive file).       :  ,   ,       ,   .  ,     ,  ,
              .  `-l'        , `-l  `lib'  `.a' library  ,    .

       -lobjc  -l      Objective C .

       -nostartfiles
                ,     .

       -nostdlib
                  .     .

       -static
                 (dynamic linking)   ,   .     .

       -shared
                ,        .      .

       -symbolic
                 ,    .        (   `-Xlinker -z -Xlinker defs' ).      .

       -Xlinker option
                option  .        , GNU CC  .

                    ,     `-Xlinker',    ,     .  ,    `-assert  definitions',
              `-Xlinker  -assert  -Xlinker definitions',    `-Xlinker "-assert
              definitions"',         ,  .

       -Wl,option
                option  .   option   ,      .

       -u symbol
               symbol  ,      .     `-u' ,    ,     .

 (DIRECTORY OPTION)
          ,   , ,    :

       -Idir   dir .

       -I-      `-I-'   `-I'      `#include "file"'  ;      `#include  <file>'
              .

                `-I'     `-I-'  ,        `#include' . ( -I    .)

              , `-I-'     (    )   `#include "file"'  .    `-I-'   .     `-I.'
              ,       .        ,    .

              `-I-'   , , `-I-'  `-nostdinc'   .

       -Ldir   `-l'       dir .

       -Bprefix
                  , ,     .

                    : `cpp', `cc1' (  C++   `cc1plus'),  `as'   `ld'.   prefix
              ,     `machine/version/'.

                 ,       `-B'   ().      ,     `-B'  ,         `/usr/lib/gcc/'
              `/usr/local/lib/gcc-lib/'.      ,   `PATH'          .

               ,  (run-time)  `libgcc.a'  `-B'     .    ,     , .       ,    .
              , `libgcc.a'  .

               GCC_EXEC_PREFIX   ;    ,  .    `-B' GCC_EXEC_PREFIX ,    `-B' ,
              .

 (WARNING OPTION)
            ,   , ,    .

          GNU CC       :

       -fsyntax-only
                  ,   .

       -w       .

       -Wno-import
               #import  .

       -pedantic
                ANSI C    ;    .

                 ,  ANSI C (    `-ansi' ).  ,    ,  GNU    C    .        .   ,
              (pedant).

                 (   `__'    )  `-pedantic'    .  Pedantic  __extension__    .
              ,   .

       -pedantic-errors
                 `-pedantic' ,     .

       -W          :

          o    (nonvolatile automatic variable) longjmp   .      .

                  setjmp   ,         longjmp,             .    ,      ,      ,
              longjmp.

          o     ,     . (  ) ,      :

              foo (a)
              {
                if (a > 0)
                  return a;
              }

               GNU CC     ( abort  longjmp),     .

          o            (side  effect).      ,       void  .   ,   `x[i,j]'   ,
              `x[(void)i,j]'  .

          o     `>'  `<='   .

       -Wimplicit-int
                   .

       -Wimplicit-function-declaration
                     .

       -Wimplicit
               -Wimplicit-int  -Wimplicit-function-declaration.

       -Wmain  main        ,    .  ,    , int ,  ,    .

       -Wreturn-type
                 ,     int ,    .       return ,      void .

       -Wunused
                     , ,        ,    .

       -Wswitch
                switch     ,    case   ,     .  (  default        .)      case
              .

       -Wcomment
                `/*'   ,    .

       -Wtrigraphs
                 trigraph (   ).

       -Wformat
                printf  scanf    ,        .

       -Wchar-subscripts
               char   .   ,        char  .

       -Wuninitialized
                   .

                   ,    ,       .   `-O' ,   .

                    .     volatile   ,       , 1, 2, 4, 8   .    ,    ,     .

              ,        ,    .      ,        .

                  GNU CC     ,        .     :

              {
                int x;
                switch (y)
                  {
                  case 1: x = 1;
                    break;
                  case 2: x = 4;
                    break;
                  case 3: x = 5;
                  }
                foo (x);
              }

               y  1, 2  3,  x  ,  GNU CC  .    :

              {
                int save_y;
                if (change_y) save_y = y, y = new_y;
                ...
                if (change_y) y = save_y;
              }

                ,    save_y   .

               volatile     .

       -Wparentheses
                    ,    .

       -Wtemplate-debugging
                C++    template  ,   (debugging)   ,    . ( C++).

       -Wall      `-W' .        ,

        `-W...'    `-Wall' ,      ,      ,    ""  .

       -Wtraditional
                   C     ANSI C ,    .

          o        .  C   ,  ANSI C     .

          o     (block)   ,     .

          o   switch      long.

       -Wshadow
                   ,    .

       -Wid-clash-len
                     len  ,    .   ,      .

       -Wpointer-arith
                    (size)  void   ,    .  GNU C    void *   ,        1.

       -Wcast-qual
                     ,    .  ,   const char *    char * ,   .

       -Wcast-align
                  ,     (alignment) ,    .  ,      2  4     ,     char *   int
              * ,    .

       -Wwrite-strings
                    const  char[length],   ,       non-const   char   *      .
              ,             const,     ;     `-Wall'   .

       -Wconversion
                       ,    .        ,      ,     (default promotion) .

       -Waggregate-return
                        ,    .  (      ,     .)

       -Wstrict-prototypes
                      ,    .  (     ,  ,   .)

       -Wmissing-prototypes
                     ,    .          .          .

       -Wmissing-declarations
                    ,    .          .          .

       -Wredundant-decls
                    ,    ,    .

       -Wnested-externs
                extern    ,    .

       -Wenum-clash
                      ( C++).

       -Wlong-long
                long  long      .     .  `-Wno-long-long'     .  `-Wlong-long'
              `-Wno-long-long'   `-pedantic'  .

       -Woverloaded-virtual
              ( C++.) ,     (type signature).     ,        ,      : ,        ,
              ,   .

       -Winline
                 (inline),    inline -finline-functions ,    .

       -Werror
                 ;      .

 (DEBUGGING OPTION)
       GNU CC   ,    ,   GCC :

       -g         (stabs, COFF, XCOFF,  DWARF).   . GDB    .

                  stabs     ,  `-g'    GDB   ;   GDB  ,      ,    .          ,
              `-gstabs+',  `-gstabs',   `-gxcoff+',   `-gxcoff',   `-gdwarf+',
              `-gdwarf' ().

                 C   ,  GNU  CC   `-g'  `-O' .       :  ;      ;       ;     ,
              .

                    .     .

        GNU CC    ,    .

       -ggdb    ()  ,   GDB .

       -gstabs
               stabs  ()  ,  GDB .    BSD   DBX   .

       -gstabs+
               stabs  ()  ,   GNU  (GDB)  GNU .   .

       -gcoff  COFF  ()  .   System V   System V   SDB   .

       -gxcoff
               XCOFF  ()  .  IBM RS/6000  DBX    .

       -gxcoff+
               XCOFF  ()  ,   GNU  (GDB)  GNU .   .

       -gdwarf
               DWARF  ()  .   System V   SDB   .

       -gdwarf+
               DWARF  ()  ,   GNU  (GDB)  GNU .   .

       -glevel
       -ggdblevel
       -gstabslevel
       -gcofflevel -gxcofflevel

       -gdwarflevel
                ,   level    .  level   2.

              Level 1    ,        backtrace.       ,      .

              Level 3   ,     .   `-g3'   ,    .

       -p      ,   profile ,   prof .

       -pg     ,   profile ,   gprof .

       -a      ,    (basic block)  profile ,       ,   tcov    .   ,    tcov .
              GNU gprof   .

       -ax      ,   'bb.in'     profile ,  profile    'bb.out' .  `bb.in'    .
              , profile  ,     ,  profile    .    `-'       profile   .      ,
              `/path/filename.d:functionname'      .     `bb.out'    .       :
              `__bb_jumps__'       (jump)       `bb.out'.       `__bb_trace__'
              `gzip',   `bbtrace.gz'  .  `__bb_hidecall__'    (trace)   call .
              `__bb_showret__'      .

       -dletters
                 ,   letters        (dump).     .             (    `foo.c.rtl'
              `foo.c.jump').

       -dM          ,  .

       -dN          .

       -dD          ,    .

       -dy     (parse)      .

       -dr    RTL    `file.rtl'.

       -dx       RTL,  .   `r' .

       -dj        `file.jump'.

       -ds    CSE (   CSE  )   `file.cse'.

       -dL       `file.loop'.

       -dt     CSE  (   CSE  )   `file.cse2'.

       -df     (flow analysis)   `file.flow'.

       -dc     (instruction combination)   `file.combine'.

       -dS      (instruction schedule)   `file.sched'.

       -dl       `file.lreg'.

       -dg       `file.greg'.

       -dR      (instruction schedule)   `file.sched2'.

       -dJ        `file.jump2'.

       -dd     (delayed branch scheduling)   `file.dbr'.

       -dk    -   `file.stack'.

       -da       .

       -dm    ,    .

       -dp           (pattern)  .

       -fpretend-float
                ,       .      ,       ,     GNU CC   .

       -save-temps
                   ""   ;    ,    . ,  `-c -save-temps'   `foo.c '   `foo.cpp'
              `foo.s'  `foo.o' .

       -print-file-name=library
                library   ,      --   .   , GNU CC , ,   .

       -print-libgcc-file-name
               `-print-file-name=libgcc.a' .

       -print-prog-name=program
               `-print-file-name',    program  `cpp'.

 (OPTIMIZATION OPTION)
          :

       -O

       -O1    .  ,         .

               `-O'  ,        ,    .    :        ,    ,        ,          .

               `-O'  ,   register     .     `-O'   PCC  .

               `-O' ,        .

                `-O' , `-fthread-jumps'  `-fdefer-pop'   .    delay  slot    ,
              `-fdelayed-branch'        .          (frame     pointer)       ,
              `-fomit-frame-pointer'   .     .

       -O2    .        , .    (loop unrolling)   (inlining).  -O  ,   ,    .

       -O3    .  -O2  , -finline-functions .

       -O0    .

               -O ,   ,      .

         `-fflag'         .    ;  `-ffoo'       `-fno-foo'.         --       .
       `no-'   .

       -ffloat-store
                   .    ,  68000   ( 68881)    double   .

                ,    .      IEEE  .      `-ffloat-store' .

       -fmemoize-lookups

       -fsave-memoized
                (heuristic)    ( C++).    .      ,     .

                   (   )   .    (1)        ; (2)    (     ); (3)    .     .  ,
              (   )   ,      .

                cout << "This " << p << " has " << n << " legs.\n";

                   .   , ""     .   ,   ,    . `-fmemoize-lookups'   .

                  ,        ()   ,  g++     .   `-fmemoize-lookups'  ,        .
              `-fsave-memoized'      ,          ,  .         :     ,         ,
              .

       -fno-default-inline
                  ,       (C++).

       -fno-defer-pop
                ,    .   ,           ,    .

       -fforce-mem
                      .    ,     .  ,     .    .

       -fforce-addr
                      .    `-fforce-mem'    .    .

       -fomit-frame-pointer
                 (frame pointer)  ,      .     ,      ;   .       .

              ,  Vax,   ,     ,       .  FRAME_POINTER_REQUIRED     .

       -finline-functions
                   .  ,   .

                   ,    static,   GCC     .

       -fcaller-saves
                   ,        ,  GCC   ,         .            .

                   ,  .

       -fkeep-inline-functions
                    ,    static,     ,    .

       -fno-function-cse
                  ;        .

                   ,    ,  hack,    ,      .

       -fno-peephole
                 peephole .

       -ffast-math
                ,  GCC   ANSI  IEEE /.  ,     sqrt     .

                 `-O'  ,     IEEE  ANSI /  ,     .

           . `-O2'     ,  `-funroll-loops'  `-funroll-all-loops' .

        `-O'    `-fthread-jumps'  `-fdelayed-branch' ,       .

            "" ,     .

       -fstrength-reduce
                (loop strength reduction) ,   .

       -fthread-jumps
                  ,        ,       ,   .     true  false,       .

       -funroll-loops
                (loop unrolling) .      .

       -funroll-all-loops
                (loop unrolling) .    .    .

       -fcse-follow-jumps
                (common subexpression elimination)  ,         ,    jump  .   ,
              CSE   else  if ,    false , CSE   jump .

       -fcse-skip-blocks
                `-fcse-follow-jumps' ,  CSE   ,   (block).   CSE    if ,  else
              , `-fcse-skip-blocks'   CSE  if    .

       -frerun-cse-after-loop
                ,   .

       -felide-constructors
                    (C++).   ,   , GNU C++    foo  y,   :

              A foo (); A y = foo ();

                , GNU C++     A     y;   foo    ; ,    `y'  .

              ANSI   C++      (`-fno-elide-constructors').       ,   `-felide-
              constructors'       ,       .

       -fexpensive-optimizations
                     .

       -fdelayed-branch
                   ,     ,  (delayed branch)    .

       -fschedule-insns
                   ,     ,   .   ,    ,      .

       -fschedule-insns2
               `-fschedule-insns' ,    ,     .      ,      ,   .

 (TARGET OPTION)
       , GNU CC     .  ,     . ,   ,   GNU CC   .   `-b'   .

       ,     GNU CC  .   (  )   ,       .

       -b machine
               machine   .       GNU CC.

                machine      GNU  CC       .   ,    `configure i386v',   80386
              System V ,     `-b i386v'  .

                 `-b' ,     .

       -V version
               version      GNU CC.        GCC.  , version   `2.0',    GNU  CC
              2.0 .

                 `-V' ,   GNU CC  ,    .

 (MACHINE DEPENDENT OPTION)
           ,    `-m '  ,       -- , 68010  68020,  .   ,     .

       ,       ,      .

         68000    `-m' :

       -m68000

       -mc68000
               68000  .      68000   ,    .

       -m68020

       -mc68020
               68020   ( 68000).      68020   ,    .

       -m68881
                68881   .     68020    , -nfp .

       -m68030
               68030  .      68030   ,    .

       -m68040
               68040  .      68040   ,    .

       -m68020-40
               68040  ,   .      68020/68881 ,   68030  68040   .

       -mfpa    SUN FPA   .

       -msoft-float
                  .  :   GNU CC  .  GCC    C ,       .    .

       -mshort
               int   16 ,  short int.

       -mnobitfield
                (bit-field) .  `-m68000' `-mnobitfield'.

       -mbitfield
               .  `-m68020' `-mbitfield'.      gcc,  .

       -mrtd    ,     ,  rtd  ,     .    ,      .

                 UNIX   .      UNIX   ,    .

              ,        ( printf);      .

              ,       , . (,     .)

              68010  68020   rtd ,  68000 .

         VAX   `-m' :

       -munix     (aobleq ), VAX  UNIX     (long ranges)  .

       -mgnu    GNU ,    ,

       -mg     g-format ,  d-format.

        SPARC  `-m' :

       -mfpu

       -mhard-float
                  .  .

       -mno-fpu

       -msoft-float
                  .  :   SPARC  GNU .     C ,     .    ,   .

              -msoft-float    ;    .

       -mno-epilogue

       -mepilogue
               -mepilogue ()  ,           .         ( C  return )    .

               -mno-epilogue  ,         .

       -mno-v8

       -mv8

       -msparclite
                   SPARC .

               (  Fujitsu SPARClite ), GCC  SPARC v7 .

              -mv8  SPARC v8 .   v7    ,   , SPARC v8  ,  v7  .

              -msparclite   SPARClite .  SPARClite  , (integer divide step and
              scan (ffs)) . v7    .

       -mcypress

       -msupersparc
                  ,     .

              -mcypress  ()    Cypress  CY7C602    ,  SparcStation/SparcServer
              3xx    .  SparcStation 1, 2, IPX  ..

              -msupersparc     SuperSparc   , SparcStation 10, 1000  2000    .
              SPARC v8 .

         Convex   `-m' :

       -mc1    C1  .    C1 ,  .

       -mc2    C2  .    C2 ,  .

       -margcount
                      (argument count word).     Convex  Vax    .  (  ,      ;
              .)

       -mnoargcount
               .      gcc,   .

         AMD Am29000   `-m' :

       -mdw      DW , ,        .    .

       -mnodw    DW  .

       -mbw           .   .

       -mnbw          .     `-mnodw' .

       -msmall
                ,          256 KB ,       256K.    call   const, consth, calli
              .

       -mlarge
                 call ;  .

       -m29050
               Am29050  .

       -m29000
               Am29000  .  .

       -mkernel-registers
                 gr64-gr95 gr96-gr127 .     ,    ,       .

              ,    , `-f'     normal, user-mode, names.

       -muser-registers
                 gr96-gr127.   .

       -mstack-check
                     __msp_check .   .

         Motorola 88K    `-m' :

       -m88000
                  m88100  m88110  .

       -m88100
                 m88100   ,   m88110  .

       -m88110
                 m88110   ,    m88100  .

       -midentify-revision
                    ident ,  ,   , ,   ,

       -mno-underscores
                 ,    .      .

       -mno-check-zero-division

       -mcheck-zero-division
                  88K       ,    .        (    )    ,      ,    .   GCC    88K
              `-mcheck-zero-division' .

       -mocs-debug-info

       -mno-ocs-debug-info
                ()    (       ),  88Open Object Compatibility Standard, "OCS",
              .  GDB   .  DG/UX, SVr4,  Delta 88 SVr3.2     , 88k      .

       -mocs-frame-position

       -mno-ocs-frame-position
                (   )         (   OCS   ).    DG/UX,   Delta88   SVr3.2    BCS
              `-mocs-frame-position' ;  88k     `-mno-ocs-frame-position'.

       -moptimize-arg-area

       -mno-optimize-arg-area
                        .     `-moptimize-arg-area'      ,          (    GDB).
              `-mno-optimize-arg-area'    .  GCC  .

       -mshort-data-
              num    r0  ,     (data  reference),     (   ).     num     .   ,
              `-mshort-data-512',      512   . -mshort-data-num   64K  num .

       -mserialize-volatile

       -mno-serialize-volatile
              ,        .

                 , GNU CC     .      .

              m88100    ,   .    `-m88100' , GNU CC      .

              m88110         .           .   ,     .    `-m88000'  `-m88110' ,
              GNU CC       .

                        .      ,    `-mno-serialize-volatile' .

                 `-m88100' ,    m88110     ,    `-mserialize-volatile' .

       -msvr4

       -msvr3  (`-msvr4')   (`-msvr3')  System V  (SVr4)  .  :

          o      (   `-mversion-03.00'   ).

          o   `-msvr4'  C   `#pragma weak'

          o   `-msvr4'  GCC   (declaration directive),  SVr4.

        SVr4 , `-msvr3'   m88K   .

       -mtrap-large-shift

       -mhandle-large-shift
                ,    31    (bit-shift);   ,       (trap)     .  , GCC    .

       -muse-div-instruction
                88K   (div) ,   GCC  .     GCC   .

       -mversion-03.00
               DG/UX       SVr4.  -msvr4 ,  hybrid-COFF  real-ELF .     .

       -mwarn-passed-structs
                      , GCC  .   C   ,       , . , GCC   .

         IBM RS6000:

       -mfp-in-toc

       -mno-fp-in-toc
                    (TOC) ,  . , GCC    ;  TOC ,  `-mno-fp-in-toc'     TOC   ,
              .

        `-m'   IBM RT PC:

       -min-line-mul
                 .  .

       -mcall-lib-mul
                 lmul$$ .

       -mfull-fp-blocks
                ,  IBM      (scratch space).   .

       -mminimum-fp-blocks
                    .   ,    .

       -mfp-arg-in-fpregs
                IBM   ,    .  ,   , varargs.h  stdargs.h    .

       -mfp-arg-in-gregs
                  .  .

       -mhc-struct-return
                     ,    .     MetaWare  HighC  (hc) .  `-fpcc-struct-return'
              Portable C  (pcc).

       -mnohc-struct-return
              ,           .     .        IBM      ,      `-fpcc-struct-return'
              `-mhc-struct-return' .

         `-m'   MIPS   :

       -mcpu=cpu-type
                  ,  cpu-type  .  cpu-type default, GCC       ,   MIPS       .
              cpu-type r2000, r3000, r4000, r6000.   cpu-type  ,  GCC        ,
              -mips2 -mips3 ,      MIPS ISA (instruction set architecture)   .

       -mips2  MIPS ISA  (, ).  -mcpu=r4000 -mcpu=r6000 -mips2 .

       -mips3  MIPS ISA  (64).  -mcpu=r4000 -mips2 . (:  -mips3)

       -mint64

       -mlong64

       -mlonglong128
                 .

       -mmips-as
                 MIPS    ,  mips-tfile   .     , OSF/1 ,   OSF/rose  .  -ggdb,
              -gstabs, -gstabs+ , mips-tfile   stab  MIPS ECOFF .

       -mgas    GNU   .   OSF/1    ,   OSF/rose  .

       -mrnames

       -mno-rnames
              -mrnames     MIPS   , (, a0 $4).  GNU -mrnames ,  MIPS    MIPS C
              .  -mno-rnames  .

       -mgpopt

       -mno-gpopt
              -mgpopt            ,    MIPS        (short global or static data
              items)    .     ,  .

       -mstats

       -mno-stats
                 (non-inline function) , -mstats (  ,  , ).

       -mmemcpy

       -mno-memcpy
              -mmemcpy         string (memcpy bcopy),   .

       -mmips-tfile

       -mno-mips-tfile
                MIPS   mips-tfile    (    )   ,   -mno-mips-tfile   mips-tfile
              (postprocess) .  mips-tfile     . , stage2 stage3     ,   ,    .

       -msoft-float
                .  :   GNU CC  .     C ,     ,    ,   .

       -mhard-float
                .    ,  .

       -mfp64  FR (on),   32 64-bit ,  32 32-bit .  -mcpu=r4000 -mips3 .

       -mfp32   32 32-bit .  .

       -mabicalls

       -mno-abicalls
               ( ) .abicalls, .cpload, .cprestore ,  System V.4   .

       -mhalf-pic

       -mno-half-pic
              -mhalf-pic        ,   , .   .

       -G num   num           bss ,    bss .  (gp $28),     .  ,  MIPS num  8,
              GNU   0. , -Gnum       .  -Gnum  .

       -nocpp  ( `.s' ) ,  MIPS    .

        `-m'   Intel 80386  : -m486

       -mno-486
                  486   .

       -msoft-float
                .  :   GNU CC  .     C ,     ,    ,   .

                   80387    ,   `-msoft-float' ,    .

       -mno-fp-ret-in-387
               FPU   .

               float  double    FPU  ,   FPU.      FPU.

               `-mno-fp-ret-in-387'      CPU  .

        `-m'   HPPA  :

       -mpa-risc-1-0
               PA 1.0   .

       -mpa-risc-1-1
               PA 1.1   .

       -mkernel
                  .   add ,      DP ;  addil  add.    HP-UX     bug.

       -mshared-libs
                 HP-UX   .    , PA   .        .

       -mno-shared-libs
                HP-UX   .  PA   .

       -mlong-calls
                    ,     256K .    ,  "branch out of range errors"  .

       -mdisable-fpregs
                 .    ,     .   ,   .

       -mdisable-indexing
                  (indexing address mode).    MACH   MIG   ,      .

       -mtrailing-colon
                (label definition)      ( ELF ).

        `-m'   Intel 80960  :

       -mcpu-type
               cpu-type ,     ,   .  cpu-type kb; ka, mc, ca, cf, sa, sb.

       -mnumerics

       -msoft-float
              -mnumerics     .  -msoft-float       .

       -mleaf-procedures

       -mno-leaf-procedures
               ()   (leaf procedure),  bal  call   .   ,  bal        ,       ,
              ,     ,       .

       -mtail-call

       -mno-tail-call
                 ()     (      ),       (tail-recursive)   .      ,          .
              -mno-tail-call.

       -mcomplex-addr

       -mno-complex-addr
               ( )   i960  , (complex addressing mode).     K ,     C  .    CB
              CC , -mcomplex-addr  .

       -mcode-align

       -mno-code-align
                 8    ( ),    .    C   .

       -mic-compat

       -mic2.0-compat

       -mic3.0-compat
               iC960 v2.0  v3.0.

       -masm-compat

       -mintel-asm
               iC960 .

       -mstrict-align

       -mno-strict-align
               ()   .

       -mold-align
                 (structure-alignment)   Intel   gcc   1.3  (  gcc  1.37).   ,
              #pragma align 1    ,   .

        `-m'   DEC Alpha :

       -mno-soft-float

       -msoft-float
               ( )   .  -msoft-float ,   `libgcc1.c'    .         ,   ,      ,
              .        Alpha  ,      ,   .

              ,    Alpha   .

       -mfp-reg

       -mno-fp-regs
                 (  )   .  -mno-fp-regs  -msoft-float .    ,  ,   $0  $f0.   ,
              ,   -mno-fp-regs    ,     .

                   ,    ,       .

           System V  ,  :

       -G      SVr4  , gcc    `-G'  (   ).      `-symbolic'   `-shared',   gcc
              .

       -Qy         ,  .ident .

       -Qn       .ident  ().

       -YP,dirs
               `-l'  ,  dirs.  dirs      .

       -Ym,dir
               dir    M4 .    .

 (CODE GENERATION OPTION)
           ,     .

          `-f' .       ; `-ffoo'    `-fno-foo'.         --   .      `no-'   .

       -fnonnull-objects
                 (reference)    null ( C++).

              , GNU C++        .  ,       a  null:

              obj &a = g (); a.f (2);

                    ,      .      ,    `-fnonnull-objects'  .

       -fpcc-struct-return
                struct  union ,     .  ,   ,      ;     GCC    PCC    .

       -freg-struct-return
               struct union .  , -fpcc-struct-return .

                -fpcc-struct-return , -freg-struct-return, GNU CC    .   , GNU
              CC -fpcc-struct-return.

       -fshort-enums
               enum       . , enum     .

       -fshort-double
               double float  .

       -fshared-data
                    const   ,  .       ,      ,        .

       -fno-common
                      bss ,   (common block) .   ,       (  extern  ),       .
              ,         ,     .

       -fno-ident
               `#ident' .

       -fno-gnu-linker
                  ( C++    )  GNU    ( GNU      ).      GNU     , GNU collect2
              (constructor)    (destructor).   (GNU  CC      collect2  .)
              collect2  ,  gcc   .

       -finhibit-size-directive
                .size ,  ,   ,      .   `crtstuff.c'   ;   .

       -fverbose-asm
                   .      (     ).

       -fvolatile
                         (volatile).

       -fvolatile-global
                    .

       -fpic     ,   .    (shared library).

       -fPIC     ,   .    (dynamic linking),     .

       -ffixed-reg
                reg      (fixed register);    (   , ,  ).

              reg    .    ,    REGISTER_NAMES  .

                ,    .

       -fcall-used-reg
                reg     ,     .       ,    .        reg .

                 ,  ,    .

                ,    .

       -fcall-saved-reg
                reg        .  ,      .         reg .

                 ,  ,    .

                      .

                ,    .

PRAGMAS

       GNU C++   `#pragma'      :   , .

       #pragma interface
              (  C++)       ,       .   ,  (  , , )          .    pragma     .
              `#pragma  interface'     ,  (     `#pragma  implementation').  ,
              (reference).

       #pragma implementation

       #pragma implementation "objects.h"
              (  C++)         (  ),         pragma.      `#pragma interface' .
              implementation        , ,    .

               `#pragma implementation'  ,        ; , `allclass.cc' , `#pragma
              implementation'     `#pragma    implementation   allclass.h   '.
              implementation       ,    .

                      implementation  .

 (FILE)
       file.c             C
       file.h             C  ()
       file.i               C
       file.C             C++
       file.cc            C++
       file.cxx           C++
       file.m             Objective-C
       file.s
       file.o
       a.out
       TMPDIR/cc*
       LIBDIR/cpp
       LIBDIR/cc1         C
       LIBDIR/cc1plus     C++
       LIBDIR/collect     (front end)
       LIBDIR/libgcc.a    GCC  (subroutine)
       /lib/crt[01n].o     (start-up)
       LIBDIR/ccrt0       C++
       /lib/libc.a         C ,  intro (3)
       /usr/include       #include
       LIBDIR/include     #include  gcc
       LIBDIR/g++-include #include  g++

       LIBDIR /usr/local/lib/machine/version.
       TMPDIR TMPDIR ( , /usr/tmp , /tmp).

 (SEE ALSO)
       cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1).
       info `gcc', `cpp', `as', `ld', `gdb'  .
       Using and Porting GNU CC (for version 2.0), Richard M. Stallman; The  C
       Preprocessor,  Richard M. Stallman; Debugging with GDB: the GNU Source-
       Level Debugger, Richard M. Stallman  Roland H. Pesch; Using as: the GNU
       Assembler,  Dean  Elsner,  Jay  Fenlason & friends; ld: the GNU linker,
       Steve Chamberlain  Roland Pesch.

BUGS

              GCC .

 (COPYING)
       Copyright 1991, 1992, 1993 Free Software Foundation, Inc.

       Permission is granted to make and distribute verbatim  copies  of  this
       manual  provided  the  copyright  notice and this permission notice are
       preserved on all copies.

       Permission is granted to copy and distribute modified versions of  this
       manual  under  the  conditions  for verbatim copying, provided that the
       entire resulting derived work is  distributed  under  the  terms  of  a
       permission notice identical to this one.

       Permission  is  granted  to  copy  and  distribute translations of this
       manual into another language, under the above conditions  for  modified
       versions,  except  that  this  permission  notice  may  be  included in
       translations approved by the Free Software Foundation instead of in the
       original English.

 (AUTHORS)
        GNU CC     GUN CC .

[]

        <xuming@users.sourceforge.net>

[]

       2003/05/13

Linuxman

       http://cmpp.linuxforum.net