荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (prepare for the future), 信区: Linux
标  题: ◇ man-gcc 中译(未完成)
发信站: 荔园晨风BBS站 (Sat Jan 12 13:45:52 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@bbs.nju.edu.cn 所发表 】
发信人: altmayer (alt), 信区: LinuxUnix
标  题: ◇ man-gcc 中译(未完成)
发信站: 南京大学小百合站 (Wed Dec 12 10:06:43 2001), 站内信件

【 以下文字转载自 altmayer 的信箱 】

GCC(1)                      GNU Tools                      GCC(1)


名称:
        gcc, g++  -  GNU C 与 C++ 程式编译器


使用语法:
       gcc [ option | filename ]...
       g++ [ option | filename ]...

       其中 option   为 gcc 使用时的选项(後面会再详述),
         而 filename 为欲以 gcc 处理的档案

警告:
      本使用手册的内容乃摘自 gcc 的完整使用文件,主要只写出 gcc 使
      用时的选项,以方便使用 gcc 时查阅。

      本使用手册除非有人自愿维护,否则本手册的内容不见得会与目前最
      新的 gcc 相符。如果你发现任何不符合之处,请核对 gcc 的 info
      文件 (译注:用"info gcc"的指令即可阅读 gcc 的 info 文件)。

      若我们在本手册中,发现有因失去时效而足以造成严重困扰的内容,
      我们将不会继续散布这份手册。在发展 gcc 之外,我们并没有剩馀
      的时间将本手册的内容随 info 文件一同更新。在 The GNU project
      中,"man page" 这种东西将会被 info 文件所取代,我们不会继续
      浪费时间在 man page 上面。

      想看最新最完整的文件,请参考 gcc 的 info 文件,或阅读 Using
      and Porting GNU CC (for version 2.0) 这本书。这两者均出自於
      gcc.texinfo 这份 Texinfo 的原始文件。


说明:
      这 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-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, see 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).

参阅:
       1.cpp(1), as(1), ld(1), gdb(1), adb(1), dbx(1), sdb(1)等 man page。
       2.`gcc', `cpp', `as', `ld', 及 `gdb' 的 info 文件。
       3.Using and Porting GNU CC (for  version  2.0),
                Richard  M.Stallman;
       4.The C Preprocessor,
                Richard M. Stallman;
       5.Debugging with GDB: the GNU Source-Level Debugger,
                Richard  M.Stallman and Roland H. Pesch;
       6.Using as: the GNU Assembler,
                Dean Elsner, Jay Fenlason & friends;
       7.ld: the  GNU  linker,
                Steve Chamberlain and Roland Pesch.

BUGS
       For instructions on reporting bugs, see the GCC manual.

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 ver-
       sions  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 con-
       ditions for modified versions, except that this permission
       notice  may  be  included  in translations approved by the
       Free Software Foundation instead of in  the  original  En-
       glish.

作者:
       请参阅 GNU CC 手册中 GNU CC 的贡献者。
--
※ 转寄:.华南网木棉站 bbs.gznet.edu.cn.[FROM: 211.80.41.106]
--
※ 转载:.南京大学小百合站 bbs.nju.edu.cn.[FROM: 211.80.41.106]
--
※ 转寄:.南京大学小百合站 bbs.nju.edu.cn.[FROM: 深圳大学BBS]

--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店