编译和链接
- 预处理
- 编译
- 汇编
- 链接
预处理(prepress)
处理#
开头的预编译指令。
-
#include
:包含的文件插入此预编译指令位置,递归过程 -
#define
:删除,展开宏定义 - 条件预编译指令:执行#if #ifdef
- 删除所有注释
- 添加行号和文件名标识:产生警告和错误时能正确显示文件与行号
- 保留所有
#pragma
编译器指令
编译(compilation)
- 对预处理完的文件,进行词法,语法,语义分析,优化,生成相应的汇编代码文件
- 现在的编译器合并了预处理与编译步骤(c语言使用ccl,objc使用cclobjc)
- 由此可见,编译器是根据不同的编译参数,调用对应的编程程序,预处理编译程序(ccl)汇编器:(as)连接器:(ld)
- 输出汇编语言文件
汇编(assembly)
- 汇编只是简单地翻译过程,把汇编语言按照指令对照表意义翻译。
- 汇编直接输出目标文件(Object File)
链接(linking)
- 将目标文件 链接成可执行文件
网友评论