gcc中文手册

所需积分/C币:12 2017-03-20 10:07:00 345KB PDF

gcc使用手册,可以看看。
其他后缀名的文件被传递给连接器( inker).通常包括: 目标文件(○ oject file) 归档库文件( Archive fi1e 除非使用了-c,-S,或-E选项(或者编译错误阳止了完整的过稈),否灲连接总是最后的步骤 在连接阶段中,所有对应于源程序的.o文件,-1库文件,无法识别的文件名(包括指定的.o目 标文件和.a库文件)按命令行中的顺序传递给连接器 选项( OPTIONS 选项必须分立给出:‘-dx完全不同于-d-x 大多数-£’和-W'选项有两个相反的格式:- Ename和-no-name(或-刚ame和 -wno-name).这里只饥举不是默认选项的格式 下面是所有选项的摘要,按类型分组,解释放在后面的章节中 总体选项(vera11 option) 1⊥e-p-pe anguage 语言选项( Language option) -ansi -fall-virtual -fcond-mismatch -fdallars-in-identifiers fenumm-int-equiv fexterIldl-templates fn1o-asIn -ino-builtirl hosted -Ero-hosted -freestanding fno-freestarding fr . fsi f 三r -fthis-is-variable funsigned-bitfields funsignea-char fwritable-strings -traitional -traditiona l-cpp -trigraphs 警告选项( Warning Option) fsyntax-only -pedantic -pedantic-errors Naggregate-return -Wcast-align -Wcast-qual -Achar-subscript -Comment -Conversion Wenum-clash Werror Wformat id-c⊥ash-⊥en Wimp⊥icit Wimp⊥icit-int Wimplicit-function-declaration -Winline -wlong-long -Wmain Nmissing-prototypes -Nmissing-declarations -Nnested-externs Ano-import -Parentheses -Wpointer-arith -Redundant -decls wreturn-type Wshadow wst tctyp Switch temp⊥ate- debugging- Tradition⊥- trigraphs- Wuninitia⊥ized d -wwrite-strings 调试选项( Debugging Option letters -fpretend-float -g -glevel -gcoff -gxcoff -gxcoff+ gdwarf -gdwar=+ -stabs -stabs+ -gdb -p -pg -save-temps -print-=ile-rame=library -prirt-libgcc-file-name -print-prog -name=program 优化选项( Optimization Option) -fcaller-saves -fcse-follow-jumos -fcse-skip-blocks f de layed-branch --elide-constructors -fexpensive-optimizations ffast-math -ffloat-store fforce-addr 士orce-mem finline-functions -fkeep-inLine-functions le-lookups fno-de=ault-inline -fno-de=er-pop -fno-function-cse -fno-inline fno-peephole -omit-frame-pointer rerun-cse-after-loop fschedule-irsns fschedule-insns2 fstrength-reduce fthread-jumps -funroll-all-loops OpS 预处理器选项( Preprocessor Option) -Assertion -C ---dN-Dmacrol=de i E-H -idirafte include file-imacrcs file -iprefix file-iwithprefix dir -M-MD -MM -MMD nostdinc -p -Macro -undef 汇编器选项( Assembler Option) -Na 连接器选项( Linker Option) library nostartfiles -nostdlib -static -shared -syMbolic -Linker option -Wl, cption -u symbol 目求选项( Directory option) Prefix-Idr-工--Ldix 目标机选项( farget Option) b Machine -v version 配置相关选项( Configuration Dependent Option) M680x0选项 -m68000-n68020-m68020-40-m68030-m68040-m68881- mittie1d -mc68000-mc58020 -mtpa -mnobitfield -mrtd -mshort -msoft-float VAx选项 SPARC送项 -epilogue -mfpu -mhard-float -mno-fpu -mno-epilogue -msoft-float -msparclite -mv8 -msupersparc -cypress Convex进项 margcount -mcl noargcount AMD29K送项 m29000-m29050 -mbw -mdw -mkernel-registers -large -mnbw -mnodw msma tack-check -muser-registers M88K送项 -m88000-m88100-m88110-mbig-pic-mcheck-zero-division mhandle-large-shift -midentify-revision -mno-check-zero-divisicn -mno-oCs-debud-info ocs-frame-position -mno-optimize-arg-area -mno-serialize-volatile -mno-undersccres -mocs-debuc-info mocs-frame-position -moptimize-arg-area -mserialize-volatile mshort-data-num -msvr3 -msvr4 -nmtrap-large-shift muse-div-instruction -mversion-03.00 -mwarn-passea-structs RS6000进项 -infp-in-tcc -mnlo-fop-in-to R选项 -mcal--lih-mul -mtp-arg-in-fpregs -mfp-arg-in-gregs Infull-p-blocks -Imhc-struct-return -Inin-line-Imul mminimum-fp-blocks -mnohc-struct-return MPS迸项 -Iucpu=cpu type -nips2 -imLips3 -mint64 -nlong 64 -immlips-as -Imgas mrnames -mno-rnames -mgpopt -mno-grcpt -mstats -mno-stats -mmemcpy -mno-memcpy -mno-mips-tfile -mmips-tfile -msoft-float mhard--lcat -mabicalls -mno-abicalls -mhalf-pic -mro-half-pic nunn ncrp 1386进项 -m486 -mnc-486 -msoft-float -mno-fp-ret-in-387 HPPA进项 -mpa-risc-l-0 a-risc-1-1-mkernel -mshared-lihs mno-shared-libs -mlong-calls -mdisable-fpregs -mdi sable-indexing -mtrailing-coLon 1960送项 mcpu-type -numerics -msoft-float -mleaf-procedures -mno-leaf-procedures -mtail-call -mna-tail-ca ll-mcomp lex-addn IIno-coImplex-addr -Imcode-align -rino-code-align -Imic-comnpat -mic2.0-ccmpat -mic3.0-compat -masm-compat -mintel-asm mstrict-align -mno-strict-align -mold-align -mno-old-align DEC Alpha选项 mfp-regs -mro-fp-regs -mno-soft-float -msoft-float mV进项 Qy -On -YP, path 代码生成选项( Code Generation Option) -fcall-saved-reg fcall-used-reg 王 Fixed-reg finhibit-size-directive . fnonnull-objects fno-common fno-ident -=nc-gnu-linker -fpcc-struct-return -fpic -fPIC freg-struct-return -fshared-data -fshort-enums -fshort-douole -volatile -tvolatile-gl obal-fverbose-asm 总体选项( Overa11 Option) language 明确指出后面输入文件的语言为 anguage(而不是从文件名后缀得到的默认选择) 这个选项应用于后面所有的输入文件,直到遇着下一个-x选项.1 anguage的可选 Ai 1 c,objective-c,c-header',c++, cpp-output assembler', Fn assembler-with-cpp' "X none 关闭任何对语种的明确说明,囚此依据文件名后缀处理后面的文件(就象是从未使用过 选项) 如果只操作四个阶段(预处理,编译,汇编,连接)中的一部分,可以使用-κ'选项(或文件名后 缀)告诉gcc从哪里开始,用-c',`-S′,或-巸'选项告诉gcc到哪里结束.注意,某些选项 组合(例如,-xepp- output-E')使gcc不作仁何事情 编译或汇编源文件,但是不作连接.编译器翰岀对应于源文件的目标文件. 缺省情况下,GCC通过用.o'替换源文件名后缀ˇ.c',.i',.s',等等,产日 标文件名.可以使用-o选项选择其他名字 G~~忽略-ε选项后面任何无法识别的输入文件(他们不需要绽泽或汇编 编译后即停止,不进行汇编.对于每个输入的非汇编语言文件,输出文件是汇编语言文 件 缺省情况下,GC℃通过用.。'膂换源文件名后缀¨.c',`.主',等等,产目标文件名 可以使用-o选项选择其他名字 忽略任何不需要编译的输入文件 预处理后即停止,不进行编译.预处理后的代码送往标准输出 GC忽略任何不需要预处哩的输入文件 -o file 指定输出文件为红ie.该选项不在乎GcC产生什么输岀,无论是可执行文件,日标文件, 汇编文件还是预处理后的C代码 由」只能指定一个输出文件,因此编译多个输入文件时,使用-。'选项没有意义,除非 输出一个可执行文件 如果没有使用`-o'选项,默认的输出结果是:可执行文件为^a.out', Source. suffix'的目标文件是` Source,o',汇编文件是丶 source.s',而预处 理后的C源代码送往标准输出. (在标准错误)显示执行编译阶段的命令.同时显示编译器驱动程序,预处理器,编译器 的版本号. plpe 在编译过程的不同阶段间使用管道而非临时文件进行通信.这个选项在某些系统上无法 工作,因为那些系统的汇编器不能从管道读取数据.GNU的汇编器没有这个问题. 语言选项( LANGUAGE OPTIONS 下列选项控制编译器能够接受的C"方言 ansI 支持符合ANSI标准的C程序 这样就会关闭cNUC中某些不兼容 ANSI C的特性,例如asm,in1ine和 typeof 关键字,以及诸如unix和vax这些表明当前系统类型的预定义宏.同时开启不受欢迎 和极少使用的 ANSI trigraph特性,以及禁止`$'成为标认符的部分 尽管使用了-ansi'选项,下面这些可选的关键字,asm, extension in1ine和 typeof仍然有效你当然不会把他们用在2NSIC程序中,但可 以把他们放在头文件里,因为编详包含这些头文件的程序时,可能会指定-ansi'选项. 另外一些预定义宏,如wniκ和va,无论有没有使用-ansi'选项,始终有 效 使用ˆ-ansi'选项不会自动拒绝编译非ΔsSI程序,除非增加`- pedantic'选项作为 ans立'选项的补充 使用-ansi'选项的时候,预处理器会预定义一个 STRICT ANSI宏.有些头文件 关注此宏,以避免声明某些函数,或者避免定义某些宏,这些函数和宏个被ANSI标准请 用;这样就不会干扰在其他地方使用这些名字的程序了 fno-asm 不扎asm,in1ine或 typed£当作关键字,因止这些词可以用做标识符.用asm inline和 typed能够榃代他们.-ansi’隐含声明了-£no-asm'. fno-bui1七in 不接受不是两个下划线开头的内建函数(bui1t- in function).目前受影响的函数有 exit, abort, abs, alloca, cos, exit, fabs, labs, memcmp, memcpy sin, sqrt, strcmp, strcpy, Fll strlen ansi'选项能够阻止a]]。ca和exi成为内建函数. Hosted 按宿ⅰ环境编译;他隐含声明了-ui]tin'选项,而目警告不正确的main函数声 明. frees tanding 按独立环境编译;他隐含声明了`-fno- builtin'选项,而且对main函数没有特别要 求 (译注:宿主环境( hosted environment)下所有的标准库可用,main函数返回一个 int值,典型例子是除了内核以外几乎所有的程序.对应的独立环境( freestanding environment)不存在标准厍,程序入口也不一定是main,最明显的例子就是操作系 统内核.详情参考gcc网站最近的资料 Eno-strict-prototype 对于没有参数的函数声明,例如` int foo();",按C风格处理---即不说明参数个数 或类型.(仅针对C++).正常情況下,这样的函数foo在C++中意咪着参数为空 七 digraphs 支持 ANSI C trigraphs.-ansi'选项隐含声明了`- trigraphs'. 一七 raditional 试图支持传统¢編译器的某些方面.详见GNC手册,我们己经把细节清单从这生删除, 这样当内容过时后,人们也不会埋怨我们 除了一件事:对于C++程序(不是C),- traditiona1'选项带来一个附加效应,允许 对this赋值.他和- fthis e'选项的效果一样 traditional-cpp 试图支攴持传统C预处理器的某些方面特别是上面提到有关预处理器的内容,但是不包 括- traditiona1'选项的其他效应 -Edollars-in-identiflers 允许在标识符( identifier)中使用`$'字符(仅针对C++).你可以指定 fno-do1ars-in- identi£iers'选项显明禁止使用$’符.(CNUC++在某些 目标系统缺省允许`$'符,但不是所有系统.) fenum-int-equiv 允许int类型到枚举类型( enumeration)的隐式转换(仅限于C++).正常情况下GNU ++允许从enum到int的转换,反之则不行 fexternal-templates 为模板声明( template declaration)产生较小的代码(仅限于c+),方法是对于每 个模板函数( temp _ate function),只在定义他们的地方生成个副本.想要成功使 用这个选项,你必须在所有使用模板的文件中,标记`# ragna 1mp1 ementation (定义)或`# pragma interface’(声明) 当程序用ˆ-feκ terna1- templates'编译时,模板实例( template instantiation)全部是外部类型你必须让需要的实例在实现文件中出现.可以通 过 typed£实现这一点,他引用所需的每个实例.相对应的,如果编译时使用缺省选项 fno- externa1- templates',所有模板实例明确的设为内置 Eall-virtual 所有可能的成员函数默认为虚函数,所有的成员凶数(除了构造子函数和new或 delete成员操作符)视为所在类的虚函数 这不表明每次调用成员函数都将通过内部虚函数表.有些情况下,编译器能够判断出可 以直接调用某个虚函数;这时就直接调用 -Econd-mismatch 允许条件表达式的第一和第三个参数的类型不匹配.这种表达式的值是void 七his-is- variab1 允许对this赋值(仅对C++).合并用户自定义的自山存储管理机制到C++后,使可赋值 的this'显得不合时宜.因此,默认情况下,类成员函数内部对this赋值是无效操作 然而为了向后兼容,你可以通过- Ethis-s- variab]e'选项使这种操作有效 -funsigned-char 把chax定义为无符号类型,如同 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 -orm of - unsigned-chax'的相反选项.同样,`-fn。- signed-chax'等价」 funsigned-char -Esigned-bitfields funsigned-bitfields n。- signed- bitfields Eno-unsigned-bitfields 如果没有明确声明` signed'或ˆ unsigned'修饰符,这些选项用来定义有符号位域 ( bitfield)或无符号位域.缺省情况下,位域是有符号的,因为他们继承的基本整数类 型,如int,是有符号数 然而,如果指定了- tradi tional'选项,位域永远是无符号数 Ewritable-strings 把宇符串常量存储到可写数据段,而且不做特别对待.这是为了兼容一些老程序,他们假 设字符串常量是可写的.- traditional'选项也有相同效果. 篡改字符串常量是一个非常糟糕的想法;∵常量’'就应该是常量 预处理器选项( Preprocessor option) 下列选项针对¢预处理器,预处理器用在正式编译以前,对C源文件进行某种处理 如果指定了`-E'选项,Gc℃只进行预处理L作.下面的杲些选项必须和ˆ-Σ'选项起才有意 义,因为他们的输出结果不能用于编译 include fil 在处理常规输入文件之前,首先处理文件红ie,其结果是,文件红le的内谷得到编 译.命令行上任何ˆ-D'和-U'选项永远在- include file!之前处理,无论他们在 命令行上的顺序如何.然而- include'和- macros'选项按书写顺序处理 -imacros fil 在处理常规输入文件之前,首先处理文件file,但是忽略输出结果.由于丢弃了文件 fie的输出内谷,`- imacros file'选项的唯一效果就是使文件fi1e中的宏定义 生效,可以用于其他输入文件.在处理`- macros红ie'选项之前,预处理器首先处理 D'和-U’选项,并不在乎他们在命令行上的顺序.然而- include和 macros'选项按书勻顺序处理 一 idirafter di 把目录αi添加到第二包含路径中.如果某个头文件在主包含路径(用-'添加的路径) 中没有找到,预处理器就搜索第二包含路径 iprefix prefix 指定 prefix作为后续- iwithprefix'选项的前缀 iwi there£ ix dir 把目录添加到第一包含路径中.目录名由 prefix和dix合并而成,这里 prefix被先 前的`- prefix'选项指定 n。 stdin 不要在标准系统目录中寻找头文件.只搜索-工’选项指定的目录(以及当前目录,如果 合适). 结合使用- nostdind'和`-工-选项,你可以把包含文件搜索限制在显式指定的目录 n。s七dinc↓ 不要在C++专用标准目录中寻找头文件,但是仍然搜索其他标准目录.(当建立

...展开详情

评论 下载该资源后可以进行评论 2

windzzf2 这资源挺好的,中文看着亲切。感谢分享。
2018-05-12
回复
木刀的杂谈 感觉还不错
2017-03-27
回复
img
siyelangshao

关注 私信 TA的资源

上传资源赚积分,得勋章
最新资源