1.gcc编译器对程序的编译,分为四个阶段:
1>预编译(pre-processing):在预处理阶段,输入的是C语言的源文件,通常为*.c。它们一般带有*.h之类的头文件。这个阶段主要处理源文件中的#ifdef,#include,#define预处理命令。该阶段会生成一个中间文件*.i文件。
这个阶段使用命令:
gcc –E tiger.c –o tiger.i
它通过对源文件tiger.c使用-E选项来生成中间文件tiger.i
2>编译和优化(compiling):在编译阶段,输入的是中间文件*i,编译后生成汇编文件*.s
这个阶段使用命令:
gcc –S tiger.i –o tiger.s
3>汇编(assembing):在汇编阶段,将输入的汇编文件*.s转换成二进制机器代码*.o.
这个阶段使用命令:
gcc -c tiger.s –o tiger.o
4>链接(linking):最后在链接阶段将输入的二进制机器代码文件*.o,汇集成一个可执行的二进制代码文件。
这个阶段使用命令:
gcc tiger.o -o tiger
注:
以上所有阶段,可以直接使用gcc -o tiger tiger.c,直接生成可执行文件。
gcc -o tiger tiger.c(也可以使用gcc tiger.c -o tiger)