gcc简介

gccGNU Compiler Collection的缩写。

最初是作为C语言的编译器(GNU C  Compiler) 作者为Richard Stallman,是GNU项目的奠基者

现在已经支持多种语言,如C、C++、Java、Pascal、Ada、COBOL语言等 。

主要特征:

  1. gcc是一个可移植的编译器,支持多种硬件平台,甚至对Don Knuth 设计的 MMIX 这类不常见的计算机都提供了完善的支持

  2. gcc不仅仅是个本地编译器,它还能跨平台交叉编译(在本地编译的程序,可以运行在其他平台之上)

  3. gcc有多种语言前端,用于解析不同的语言。

  4. gcc是按模块化设计的,可以加入新语言新CPU架构的支持

  5. gcc是自由软件

gcc编译程序的过程

  1. 预处理(Pre-Processing) > [-E] 头文件展开

  2. 编译(Compiling) > [-S]

  3. 汇编(Assembling) > [-c]

  4. 链接(Linking) > [不加任何选项]

常用选项

选项 作用
-E 预处理,生成.i文件
-S 编译,生成.s汇编文件
-c 汇编,编译源码生成.o目标文件
Null无参 链接,并不需要任何选项
-o 生成目标文件,如.i,.o,.s,可执行文件,默认为a.out文件等
-Wall 使gcc对源代码有问题的地方发出警告
-I[dir] dir加入头文件的搜索路径
-L[dir] dir加入库文件的搜索路径
-l[lib] 链接lib
-g 在目标件中嵌入调试信息,以便gdb试程序调试
-O 优化编译后的代码
-w 关闭所有警告信息[不推荐]