gcc(GNU C compiler)
基本用法:
gcc [options] [filename] -O outputname
options:编译器所需要的编译选项。
filenames:要编译的文件名
-o output_filename:确定可执行文件的名称为output_filename。如果不给出这个选项,gcc就给出预设的可执行文件a.out。
编译选项:
-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、连接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、连接的速度就相应地要慢一些。
-O2,比-O更好的优化编译、连接,当然整个编译、连接过程会更慢
-c:只编译,不链接成可执行文件,编译器只是由输入的.c等源代码文件生成.o为后缀的目标文件。
-g:产生调试工具所需要的符号信息,要想对编译出的程序进行调试。
-I dirname: 将dirname所指出的目录作为编译器寻找头文件的标准路径。
gcc foo.c -I /home/include -o foo
-static: 静态链接库文件
库可分为动态和静态两种,动态为.so后缀,静态用.a为后缀。
Linux在缺省情况下:选择链接动态库。
gcc -static hello.c -o hello
-Wall:生成所有警告信息
-w:不生成任何警告信息
-DMACRO: 定义 MACRO 宏,等效于在程序中使用#define MACRO
编译过程可以分为:
1.预处理
2.编译
3.汇编
4.链接
这四个阶段
文件类型:
gcc hello.c -o hello
./hello
计算程序运行时间:
time ./hello