百科知识库-中国实用知识供应者
网站地图设为首页加入收藏
百科知识库
您当前的位置:百科知识库科学技术电脑技术网管天地GCC使用指南
知识导航
GCC使用指南

GCC使用指南 使用语法:
 gcc [ option | filename ]...
 g++ [ option | filename ]...

 其中 option 为 gcc 使用时的选项(后面会再详述),
 而 filename 为欲以 gcc 处理的文件
说明:
  这 C 与 C++ 的 compiler 已将产生新程序的相关程序整合起来。产
  生一个新的程序需要经过四个阶段:预处理、编译、汇编,连结,
  而这两个编译器都能将输入的文件做不同阶段的处理。虽然原始程序
 的扩展名可用来分辨编写原始程序码所用的语言,但不同的 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


 除非编译过程出现错误,否则 "连结" 一定是产生一个新程序的最
 後阶段。然而你也可以以 -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-l

     

arge-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
  -mn

     

 
百科知识库 版权所有

Copyright © 2007-2009 www.zsku.net, All Rights Reserved

本站所收集信息资料为网络转载 版权属各作者 并已著明作者 旨在资源共享、交流、学习之用,请勿用于商业用途,本站并不保证所有信息、文本、图形、链接及其它内容的绝对准确性和完整性,故仅供访问者参照使用。