各个阶段如下图所示:
1 预处理阶段
1.1 操作系统的自带编译器gcc, gcc -E 它是gcc编译器的一个命令,使用后会有对应的应用程序执行处理
(1)作用:预编译过程主要处理那些源代码中以#开始的预编译指令,比如删除注释
(2)将所有的#define删除,并且展开所有的宏定义,比如头文件原地展开
(3)处理所有条件编译指令,如#if,#ifdef等
(4)添加行号和文件标识,如#2 “hello.c” 2,以便于编译时编译器产生调试用的行号信息及用于编译时产生编译错误或警告时能够显示行号信息;
2 编译阶段
(1)编译过程就是把预处理完的文件进行一系列词法分析,语法分析,语义分析及优化后生成相应的汇编代码文件(.s)
3 汇编阶段
(1)汇编就是将汇编代码转变成机器可以执行的命令,生成目标文件(.o),汇编器as根据汇编指令和机器指令的对照表一一翻译即可完成。
汇编的命令为:
gcc –c hello.s –o hello.o 或者从源文件直接输出目标文件:gcc –c hello.c –o h