IDE将很多编译和链接(构建)的过程细节给隐藏起来,使得我们在使用上非常方便,但一碰到问题就无所适从了。我们需要,也有必要去了解这方面的知识。
一般的程序编译过程为:预处理、编译、汇编、链接。各步骤主要目的:
1、预编译
删除#define,展开宏定义
处理条件预编译指令
处理#include
删除注释
添加行号和文件名标识
保留#pragma指令
2、编译
词法分析:扫描
语法分析:语法树
语义分析:静态语义、动态语义
源代码优化
代码生成
目标代码优化
生成汇编代码
3、汇编
汇编代码翻译成机器指令
4、链接
重定位
符号
符号决议
目标文件
库