ºìÁªLinuxÃÅ»§
Linux°ïÖú

GCC ʹÓÃÖ¸Äϼ°gcc×î¼Ñ±àÒë²ÎÊý

·¢²¼Ê±¼ä:2006-01-08 09:32:11À´Ô´:ºìÁª×÷Õß:CMK
GCC ʹÓÃÖ¸ÄÏ

ʹÓÃÓï·¨£º
gcc [ option | filename ]...
¡¡¡¡g++ [ option | filename ]...

ÆäÖÐ option Ϊ gcc ʹÓÃʱµÄÑ¡Ïî(ºóÃæ»áÔÙÏêÊö)£¬
¡¡¡¡¶ø filename ΪÓûÒÔ gcc ´¦ÀíµÄÎļþ

˵Ã÷£º
Õâ C Óë C++ µÄ compiler Òѽ«²úÉúгÌÐòµÄÏà¹Ø³ÌÐòÕûºÏÆðÀ´¡£²ú
ÉúÒ»¸öеijÌÐòÐèÒª¾­¹ýËĸö½×¶Î£ºÔ¤´¦Àí¡¢±àÒë¡¢»ã±à¡¢Á¬½á£¬¶øÕâÁ½
¸ö±àÒëÆ÷¶¼Äܽ«ÊäÈëµÄÎļþ×ö²»Í¬½×¶ÎµÄ´¦Àí¡£ËäȻԭʼ³ÌÐòµÄÀ©Õ¹Ãû¿É
ÓÃÀ´·Ö±æ±àдԭʼ³ÌÐòÂëËùÓõÄÓïÑÔ£¬µ«²»Í¬µÄcompiler£¬ÆäÔ¤ÉèµÄ´¦Àí
³ÌÐòÈ´¸÷²»Ïàͬ£º

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¡¡¡¡Ô¤´¦ÀíÎļþ(±êÍ·Îļþ)¡¡¡¡¡¡¡¡£» (²»³£³öÏÖÔÚÖ¸ÁîÐÐ)

ÆäËûÀ©Õ¹ÃûµÄÎļþÊÇÓÉÁ¬½á³ÌÐòÀ´´¦Àí£¬Í¨³£ÓУº
¡¡¡¡.o¡¡¡¡Object file
¡¡¡¡.a¡¡¡¡Archive file

³ý·Ç±àÒë¹ý³Ì³öÏÖ´íÎ󣬷ñÔò "Á¬½á" Ò»¶¨ÊDzúÉúÒ»¸öгÌÐòµÄ×î
¡¡¡¡áá½×¶Î¡£È»¶øÄãÒ²¿ÉÒÔÒÔ -c¡¢-s »ò -E µÈÑ¡Ï½«Õû¸ö¹ý³Ì×ÔËÄ
¡¡¡¡¸ö½×¶ÎÖеÄÆäÖÐÒ»¸öÍ£Ö¹¡£ÔÚÁ¬½á½×¶Î£¬ËùÓÐÓëԭʼÂëÏà¶ÔÓ¦µÄ
¡¡¡¡.o Îļþ¡¢³ÌÐò¿â¡¢ºÍÆäËûÎÞ·¨×ÔÎļþÃû±æÃ÷ÊôÐÔµÄÎļþ(°üÀ¨²»ÒÔ .o
¡¡¡¡ÎªÀ©Õ¹ÃûµÄ object file ÒÔ¼°À©Õ¹ÃûΪ .a µÄ archive file)¶¼»á
¡¡¡¡½»ÓÉÁ¬½á³ÌÐòÀ´´¦Àí(ÔÚÖ¸ÁîÐн«ÄÇЩÎļþµ±×÷Á¬½á³ÌÐòµÄ²ÎÊý´«¸ø
¡¡¡¡Á¬½á³ÌÐò)¡£

Ñ¡Ï

¡¡¡¡²»Í¬µÄÑ¡Ïî±ØÐë·Ö¿ªÀ´Ï£ºÀýÈç `-dr' Õâ¸öÑ¡Ïî¾ÍÓë `-d -r' ´ó
¡¡¡¡²»Ïàͬ¡£
¡¡¡¡¾ø´ó²¿·ÝµÄ `-f' ¼° `-W' Ñ¡ÏÓÐÕý·´Á½ÖÖÐÎʽ£º-fname ¼°
¡¡¡¡-fno-name (»ò -Wname ¼° -Wno-name)¡£ÒÔÏÂÖ»Áгö·ÇÔ¤ÉèµÄÄǸö
¡¡¡¡ÐÎʽ¡£
¡¡¡¡ÒÔÏÂÊÇËùÓÐÑ¡ÏîµÄÕªÒª¡£ÒÔÐÎʽÀ´·ÖÀࡣѡÏîµÄÒâÒ彫Áí±ÙС½Ú˵
¡¡¡¡Ã÷¡£

¡¡¡¡Ò»°ãÐÔ(¸ÅÂÔ¡¢³£ÓõÄ)Ñ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -c -S -E -o file -pipe -v -x language

¡¡¡¡³ÌÐòÓïÑÔÑ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -ansi -fall-virtual -fcond-mismatch
¡¡¡¡¡¡¡¡¡¡¡¡ -fdollars-in-identifiers -fenum-int-equiv
¡¡¡¡¡¡¡¡¡¡¡¡ -fexternal-templates -fno-asm -fno-builtin
¡¡¡¡¡¡¡¡¡¡¡¡ -fno-strict-prototype -fsigned-bitfields
¡¡¡¡¡¡¡¡¡¡¡¡ -fsigned-char -fthis-is-variable
¡¡¡¡¡¡¡¡¡¡¡¡ -funsigned-bitfields -funsigned-char
¡¡¡¡¡¡¡¡¡¡¡¡ -fwritable-strings -traditional -traditional-cpp
¡¡¡¡¡¡¡¡¡¡¡¡ -trigraphs

¡¡¡¡±àÒëʱµÄ¾¯¸æÑ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -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 -Winline -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

¡¡¡¡³ý´íÑ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -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

¡¡×î¼Ñ»¯Ñ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -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

¡¡¡¡Ô¤´¦ÀíÑ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -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

¡¡¡¡»ã±à³ÌÐòÑ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -Wa,option
¡¡¡¡Á¬½á³ÌÐòÑ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -llibrary -nostartfiles -nostdlib -static -shared
¡¡¡¡¡¡¡¡¡¡¡¡ -symbolic -Xlinker option -Wl,option -u symbol

¡¡¡¡Ä¿Â¼Ñ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ -Bprefix -Idir -I- -Ldir

¡¡Target Options
¡¡¡¡¡¡¡¡¡¡¡¡ -b machine -V version

¡¡Óë»úÆ÷(ƽ̨)Ïà¹ØµÄÑ¡Ïî
¡¡¡¡¡¡¡¡¡¡¡¡ M680x0 Options
¡¡¡¡¡¡¡¡¡¡¡¡ -m68000 -m68020 -m68020-40 -m68030 -m68040 -m68881
¡¡¡¡¡¡¡¡¡¡¡¡ -mbitfield -mc68000 -mc68020 -mfpa -mnobitfield
¡¡¡¡¡¡¡¡¡¡¡¡ -mrtd -mshort -msoft-float

VAX Options
¡¡¡¡¡¡¡¡¡¡¡¡ -mg -mgnu -munix

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

Convex Options
¡¡¡¡¡¡¡¡¡¡¡¡ -margcount -mc1 -mc2 -mnoargcount

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

M88K Options
¡¡¡¡¡¡¡¡¡¡¡¡ -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 Options
¡¡¡¡¡¡¡¡¡¡¡¡ -mfp-in-toc -mno-fop-in-toc

RT Options
¡¡¡¡¡¡¡¡¡¡¡¡ -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 Options
¡¡¡¡¡¡¡¡¡¡¡¡ -mcpu=cpu type -mips2 -mips3 -mint64 -mlong64
¡¡¡¡¡¡¡¡¡¡¡¡ -mlonglong128 -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 Options
¡¡¡¡¡¡¡¡¡¡¡¡ -m486 -mno-486 -msoft-float -mno-fp-ret-in-387

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

¡¡ i960 Options
¡¡¡¡¡¡¡¡¡¡¡¡ -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 Options
¡¡¡¡¡¡¡¡¡¡¡¡ -mfp-regs -mno-fp-regs -mno-soft-float -msoft-float

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

¡¡Code Generation Options
¡¡¡¡¡¡¡¡¡¡¡¡ -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-returno -fshared-data -fshort-enums
¡¡¡¡¡¡¡¡¡¡¡¡ -fshort-double -fvolatile -fvolatile-global
¡¡¡¡¡¡¡¡¡¡¡¡ -fverbose-asm

PRAGMAS
¡¡¡¡Two `#pragma' directives are supported for GNU C++, to
¡¡¡¡permit using the same header file for two purposes: as a
¡¡¡¡definition of interfaces to a given object class, and as
¡¡¡¡the full definition of the contents of that object class.

¡¡¡¡#pragma interface
¡¡¡¡¡¡¡¡¡¡¡¡ (C++ only.) Use this directive in header files
¡¡¡¡¡¡¡¡¡¡¡¡ that define object classes, to save space in most
¡¡¡¡¡¡¡¡¡¡¡¡ of the object files that use those classes. Nor-
¡¡¡¡¡¡¡¡¡¡¡¡ mally, local copies of certain information (backup
¡¡¡¡¡¡¡¡¡¡¡¡ copies of inline member functions, debugging infor-
¡¡¡¡¡¡¡¡¡¡¡¡ mation, and the internal tables that implement vir-
¡¡¡¡¡¡¡¡¡¡¡¡ tual functions) must be kept in each object file
¡¡¡¡¡¡¡¡¡¡¡¡ that includes class definitions. You can use this
¡¡¡¡¡¡¡¡¡¡¡¡ pragma to avoid such duplication. When a header
¡¡¡¡¡¡¡¡¡¡¡¡ file containing `#pragma interface' is included in
¡¡¡¡¡¡¡¡¡¡¡¡ a compilation, this auxiliary information will not
¡¡¡¡¡¡¡¡¡¡¡¡ be generated (unless the main input source file it-
¡¡¡¡¡¡¡¡¡¡¡¡ self uses `#pragma implementation'). Instead, the
¡¡¡¡¡¡¡¡¡¡¡¡ object files will contain references to be resolved
¡¡¡¡¡¡¡¡¡¡¡¡ at link time.

¡¡¡¡#pragma implementation

¡¡¡¡#pragma implementation "objects.h"
¡¡¡¡¡¡¡¡¡¡¡¡ (C++ only.) Use this pragma in a main input file,
¡¡¡¡¡¡¡¡¡¡¡¡ when you want full output from included header
¡¡¡¡¡¡¡¡¡¡¡¡ files to be generated (and made globally visible).
¡¡¡¡¡¡¡¡¡¡¡¡ The included header file, in turn, should use
¡¡¡¡¡¡¡¡¡¡¡¡ `#pragma interface'. Backup copies of inline mem-
¡¡¡¡¡¡¡¡¡¡¡¡ ber functions, debugging information, and the in-
¡¡¡¡¡¡¡¡¡¡¡¡ ternal tables used to implement virtual functions
¡¡¡¡¡¡¡¡¡¡¡¡ are all generated in implementation files.

¡¡¡¡¡¡¡¡¡¡¡¡ If you use `#pragma implementation' with no argu-
¡¡¡¡¡¡¡¡¡¡¡¡ ment, it applies to an include file with the same
¡¡¡¡¡¡¡¡¡¡¡¡ basename as your source file; for example, in
¡¡¡¡¡¡¡¡¡¡¡¡ `allclass.cc', `#pragma implementation' by itself
¡¡¡¡¡¡¡¡¡¡¡¡ is equivalent¡¡¡¡to¡¡¡¡`#pragma¡¡¡¡implementation
¡¡¡¡¡¡¡¡¡¡¡¡ "allclass.h"'. Use the string argument if you want
¡¡¡¡¡¡¡¡¡¡¡¡ a single implementation file to include code from
¡¡¡¡¡¡¡¡¡¡¡¡ multiple header files.

¡¡¡¡¡¡¡¡¡¡¡¡ There is no way to split up the contents of a sin-
¡¡¡¡¡¡¡¡¡¡¡¡ gle header file into multiple implementation files.

Îļþ˵Ã÷
¡¡¡¡file.c¡¡¡¡¡¡¡¡¡¡¡¡ C source file
¡¡¡¡file.h¡¡¡¡¡¡¡¡¡¡¡¡ C header (preprocessor) file
¡¡¡¡file.i¡¡¡¡¡¡¡¡¡¡¡¡ ¾­Ô¤´¦Àí¹ýµÄ C source file
¡¡¡¡file.C¡¡¡¡¡¡¡¡¡¡¡¡ C++ source file
¡¡¡¡file.cc¡¡¡¡¡¡¡¡¡¡¡¡C++ source file
¡¡¡¡file.cxx¡¡¡¡¡¡ ¡¡C++ source file
¡¡¡¡file.m¡¡¡¡¡¡¡¡¡¡¡¡ Objective-C source file
¡¡¡¡file.s¡¡¡¡¡¡¡¡¡¡¡¡ assembly language file
¡¡¡¡file.o¡¡¡¡¡¡¡¡¡¡¡¡ object file
¡¡¡¡a.out¡¡¡¡¡¡¡¡¡¡¡¡ link edited output
¡¡¡¡TMPDIR/cc*¡¡¡¡¡¡¡¡ temporary files
¡¡¡¡LIBDIR/cpp¡¡¡¡¡¡¡¡ preprocessor
¡¡¡¡LIBDIR/cc1¡¡¡¡¡¡¡¡ compiler for C
¡¡¡¡LIBDIR/cc1plus¡¡¡¡ compiler for C++
¡¡¡¡LIBDIR/collect¡¡¡¡ linker front end needed on some machines
¡¡¡¡LIBDIR/libgcc.a¡¡¡¡GCC subroutine library
¡¡¡¡/lib/crt[01n].o¡¡¡¡start-up routine
¡¡¡¡LIBDIR/ccrt0¡¡¡¡additional start-up routine for C++
¡¡¡¡/lib/libc.a¡¡¡¡¡¡¡¡standard C library, ²ÎÔÄ man page intro(3)
¡¡¡¡/usr/include¡¡¡¡standard directory for #include files
¡¡¡¡LIBDIR/include¡¡¡¡ standard gcc directory for #include files
¡¡¡¡LIBDIR/g++-include additional g++ directory for #include

¡¡¡¡LIBDIR is usually /usr/local/lib/machine/version.
¡¡¡¡TMPDIR comes from the environment variable TMPDIR (default
¡¡¡¡/usr/tmp if available, else /tmp).

gcc×î¼Ñ±àÒë²ÎÊý

ÕªÒª ¡¡¡¡±¾ÎÄ×ÅÖؽéÉÜÔÚ²»Í¬µÄÓ²¼þ»·¾³Ï¸øGCCÖ¸¶¨ÄÄЩ²ÎÊý²Å¿ÉÒԵõ½×î¼ÑµÄÐÔÄÜ¡£ ¡¡¡¡ÕâƪÎÄÕÂÊÇ´ÓÒ»¸öÃûΪGentoo LinuxµÄ·¢ÐаæµÄ±à³Ì˵Ã÷ÊéÀïÃæ·ÖÀë³öÀ´µÄ£¬Ï£Íû¶Ô´ó¼Ò±àÒë³ÌÐòÓаïÖú¡£

--------------------------------------------------------------------------------
Ò»¡¢1.2°æ(gcc 2.9.x°æ)
i386 (Intel), do you really want to install gentoo on that? CHOST="i386-pc-linux-gnu" CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
i486 (Intel), do you really want to install gentoo on that? CHOST="i486-pc-linux-gnu" CFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
Pentium, Pentium MMX+, Celeron (Mendocino) (Intel) CHOST="i586-pc-linux-gnu" CFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
Pentium Pro/II/III/4, Celeron (Coppermine), Celeron (Willamette?) (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer"
Eden C3/Ezra (Via) CHOST="i586-pc-linux-gnu" CFLAGS="-march=i586 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i586 -O3 -pipe -fomit-frame-pointer"
Quote : I did the original gentoo install using 1.2, with gcc 2.95 using -march=i586. i686 won't work.
K6 or beyond (AMD) CHOST="i586-pc-linux-gnu" CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
(A Duron will report "Athlon" in its /proc/cpuinfo)
Athlon (AMD) CHOST="i686-pc-linux-gnu" CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
For the following, i don't know of any flag that enhance performances..., do you ?
PowerPC CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
Sparc CHOST="sparc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
Sparc 64 CHOST="sparc64-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -pipe -fomit-frame-pointer"

¶þ¡¢1.4°æ(gcc 3.x°æ):
i386 (Intel), do you really want to install gentoo on that ? CHOST="i386-pc-linux-gnu" CFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i386 -O3 -pipe -fomit-frame-pointer"
i486 (Intel), do you really want to install gentoo on that ? CHOST="i486-pc-linux-gnu" CFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i486 -O3 -pipe -fomit-frame-pointer"
Pentium 1 (Intel) CHOST="i586-pc-linux-gnu" CFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium -O3 -pipe -fomit-frame-pointer"
Pentium MMX (Intel) CHOST="i586-pc-linux-gnu" CFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium-mmx -O3 -pipe -fomit-frame-pointer"
Pentium PRO (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentiumpro -O3 -pipe -fomit-frame-pointer"
Pentium II (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
Celeron (Mendocino), aka Celeron1 (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium2 -O3 -pipe -fomit-frame-pointer"
Pentium III (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
Celeron (Coppermine) aka Celeron2 (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium3 -O3 -pipe -fomit-frame-pointer"
Celeron (Willamette?) (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
Pentium 4 (Intel) CHOST="i686-pc-linux-gnu" CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer"
Eden C3/Ezra (Via) CHOST="i586-pc-linux-gnu" CFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=i586 -m3dnow -O3 -pipe -fomit-frame-pointer"
quote : the ezra doesn't have any special instructions that you could optimize for, just consider is a K6-3...basically a p2 with 3dnow
K6 (AMD) CHOST="i586-pc-linux-gnu" CFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=k6 -O3 -pipe -fomit-frame-pointer"
K6-2 (AMD) CHOST="i586-pc-linux-gnu" CFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=k6-2 -O3 -pipe -fomit-frame-pointer"
K6-3 (AMD) CHOST="i586-pc-linux-gnu" CFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=k6-3 -O3 -pipe -fomit-frame-pointer"
Athlon (AMD) CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=athlon -O3 -pipe -fomit-frame-pointer"
Athlon-tbird, aka K7 (AMD) CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=athlon-tbird -O3 -pipe -fomit-frame-pointer"
Athlon-tbird XP (AMD) CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
Athlon 4(AMD) CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=athlon-4 -O3 -pipe -fomit-frame-pointer"
Athlon XP (AMD) CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
Athlon MP (AMD) CHOST="i686-pc-linux-gnu" CFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer" CXXFLAGS="-march=athlon-mp -O3 -pipe -fomit-frame-pointer"
603 (PowerPC) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char" CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
603e (PowerPC) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char" CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
604 (PowerPC) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char" CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
604e (PowerPC) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char" CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
750 aka as G3 (PowerPC) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-mcpu=750 -O3 -pipe -fomit-frame-pointer -fsigned-char" CXXFLAGS="-mcpu=750 -O3 -pipe -fomit-frame-pointer -fsigned-char"
Note: do not use -march=
7400, aka G4 (PowerPC) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-mcpu=7400 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec" CXXFLAGS="-mcpu=7400 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
Note: do not use -march=
7450, aka G4 second generation (PowerPC) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-mcpu=7450 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec" CXXFLAGS="-mcpu=7450 -O3 -pipe -fomit-frame-pointer -fsigned-char -maltivec"
Note: do not use -march=
PowerPC (If you don't know which one) CHOST="powerpc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char" CXXFLAGS="-O3 -pipe -fomit-frame-pointer -fsigned-char"
Sparc CHOST="sparc-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -pipe -fomit-frame-pointer"
Sparc 64 CHOST="sparc64-unknown-linux-gnu" CFLAGS="-O3 -pipe -fomit-frame-pointer" CXXFLAGS="-O3 -pipe -fomit-frame-pointer"GCC ʹÓÃÖ¸ÄÏ GCC ʹÓÃÖ¸ÄÏ GCC ʹÓÃÖ¸ÄÏ
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 83 ÌõÆÀÂÛ

  1. solx ÓÚ 2007-11-13 11:15:50·¢±í:

    Ϊʲô¿´²»¶®ÄØ(6)m:b

  2. carlote ÓÚ 2007-11-12 23:13:48·¢±í:

    ºÃ

  3. 217.129.227.* ÓÚ 2007-07-17 11:00:03·¢±í:

    http://e19c97049abb879e510d5b5bdab497cb-t.xkktxb.org e19c97049abb879e510d5b5bdab497cb http://e19c97049abb879e510d5b5bdab497cb-b1.xkktxb.org e19c97049abb879e510d5b5bdab497cb http://e19c97049abb879e510d5b5bdab497cb-b3.xkktxb.org 8d1f2bfe3cbc5359328d95464cab8b7c