1、预处理(prepressing)
· 将"#define","#if"等宏定义,条件编译指令展开
· 删除注释"//"和‘/**/‘
· 添加行号和文件名标识
· 保留所有"#pragma"编译器指令
· output: *.i
2、编译(compilation) ---- 核心 --- as
· 词法分析
· 语法分析
· 语义分析
· 优化后生产相应的汇编代码
· output: *.s
3、汇编
· 根据汇编指令和机器指令的对照表一一进行翻译
· output: *.o
4、链接
· 链接所有*.o文件,生成可执行文件
· output: *.out
原文:http://www.cnblogs.com/Eric-scratch-paper/p/5061953.html