荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: 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软件 网络书店