GCC 介绍
By jason
2005-5-27
――――――――――――――――――――――――――――――――――
【gcc参数详解】
介绍
gcc(GNU piler)是 GNU 推出的功能强大、性能优越的多平台编译器,gcc
编译器能将 C、C++语言源程序、汇程式化序和目标程序编译、连接成可执行文
件,支持编译的一些源文件的后缀及其解释:
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,. 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件
gcc and g++分别是 gnu 的 c & c++编译器 gcc/g++在执行编译工作的时候,总
共需要4步
,[预处理器cpp]
,[编译器egcs]
(机器代码)[汇编器as]
,生成可执行程序[链接器ld]
参数:
-x language filename
设定文件所使用的语言,使后缀名无效,
,而C++,如果你很个性,决定
哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用。
可以使用的参数吗有下面的这些
`c', `objective-c', `c-header', `c++', `cpp-output', `assembler', and
`assembler-with-cpp'.
看到英文,应该可以理解的。
例子用法:
gcc -x c
-x none filename
关掉上一个选项,根据文件名后缀,自动识别文件类型
例子用法:
gcc -x c -x none
-c (一定是小写!)
只激活预处理,编译,和汇编,也就是他只把程序做成obj文件
例子用法:
gcc -c
-S (一定是大写!)
只激活预处理和编译,就是指把文件编译成为汇编代码。
例子用法
gcc -S
,你可以用文本编辑器察看
-E
只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面. 例子用法:
gcc -E > 路径/
慢慢看吧,一个hello word 也要与处理成800行的代码
-o
制定目标名称,缺省的时候,gcc 编译出来的文件是 ,很难听,如果你和我有同感,改掉它,哈哈
例子用法
? gcc -o (哦,windows用习惯了)
gcc -o -S
-Idir
在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的
头文件,如果没有找到,他回到缺省的头文件目录找,如果使用-I 制定了目录,会
先在你所制定的目录查找,然后再按常规的顺序去找.
对于#include<file>,gcc/g++会到-I 制定的目录查找,查找不到,然后将到
系统的缺省的头文件目录查找
-I-
就是取消前一个参数的功能,所以一般在-Idir之后使用
-idirafter dir
在-I的目录里面查找失败,讲到这个目录里面查找.
-iprefix prefix
-iwithprefix dir
一般一起使用,当-I的目录查找失败,会到prefix+dir下查找
-nostdinc
使编译器不再系统缺省的头文件目录里面找头文件,一般和-I 联合使用,明
确限定头文件的位置-M
生成文件关联的信息。包含目标文件所依赖的所有源代码你可以用 gcc -M ,很简单。
-MM
和上面的那个一样,但是它将忽略由#include<file>造成的依赖关系。
-MD
和-M相同,
-MMD
和-MM相同,-llibrary
制定编译的时候使用的库
例子
gcc 介绍 来自淘豆网m.daumloan.com转载请标明出处.