经典的hello world中被隐藏的过程。采用GCC对c文件进行编译运行的过程,实际可以分为4个步骤。
预处理(Prepressing)
编译(Compilation)
汇编(Assembly)
链接(Linking)
下面是每个过程要做的工作:
预编译:主要处理源代码文件中#开始的预编译命令。1将所有的#define删除,展开所有的宏定义。2处理所有的条件预编译指令,如#if #endif # ifndef 等3 处理#include预编译指令,将被包含的文件插入到该预编译指令的位置。4删除所有的注释
编译:一些列的词法分析,语法分析,语义分析,以及优化后生成相应的汇编代码文件。
汇编:将汇编代码转变成机器可以执行的指令,每一条汇编语句几乎都对应一条机器指令。得到的是.o文件
链接:把各个模块之间相互引用的部分都处理好,使得各个模块之间能正确的衔接。
p.s.程序员的自我修养