Provided by:
manpages-zh_1.5.2-1_all 
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