gcc编译器现在是GNU Compiler Collection的缩写,但早期是GNU C Compiler的缩写,是如今Linux发行版的默认编译器,gcc里面集成了编译器,汇编器,连接器,使用gcc能够实现对编译过程的彻底控制,gcc能够在多种环境下编译C,C++,Object-C,但因为C++和Object-C都有本身专属的编译器,因此这里仅介绍经常使用的、C语言的功能c++
$gcc [-ESxcloIgO] [-std=] [-Wall] [-Werror] [source.c]
经常使用选项
-E
实现对source.c的预处理,默认生成source.i文件
-S
实现对source.i的编译,默认生成source.s
-c
实现对source.s的汇编,默认生成source.o
-l
实现对source.o和库文件的静态连接(编译时连接的是静态连接,静态库或共享库均可以被静态连接),eg:-ldl就是连接libdl库,-lstdc++就是连接C++库
-o
指定输出文件的文件名
-I
指定头文件的路径
-g
用于生成调试信息,须要使用gdb调试器的话须要这个选项
-O
用于进行优化处理
-std=
指定使用C语言的标准,-std=c99
即为指定使用C99的标准来编译,缺省使用C89
-Wall
将尽量显示全部的警告信息
-Werror
将把警告看成错误处理
-x
指定源代码的编程语言,-xc++用来编译C++程序编程