[读书笔记]程序员的自我修养(2)
2012-12-31 15:41
375 查看
第二章 编译和链接
1. 预处理、编译、汇编和链接
比如source code and Header files----预处理----》preprocessed(.i文件)------编译------》assembly(.s文件)--------汇编--------》object file(.o文件)------and static/dynamic library-----链接------》executable(.out文件)
2. 预编译的主要处理规则
将所有的"#define"删除,并且展开所有的宏定义
处理所有条件预编译指令
处理"#include",将包含的文件插入到该预编译指令的位置。注意,这个过程是递归进行
删除所有注释
添加行号和文件名标识,以便于调试和编译产生的错误和警告
保留所有"#pragma"指令,编译器需要使用它们
3. 目标代码的地址还没确定怎么办?连接器的作用。
静态链接——模块拼装
链接过程:地址和空间的分配、符号决议(静态的)、重定位
1. 预处理、编译、汇编和链接
比如source code and Header files----预处理----》preprocessed(.i文件)------编译------》assembly(.s文件)--------汇编--------》object file(.o文件)------and static/dynamic library-----链接------》executable(.out文件)
2. 预编译的主要处理规则
将所有的"#define"删除,并且展开所有的宏定义
处理所有条件预编译指令
处理"#include",将包含的文件插入到该预编译指令的位置。注意,这个过程是递归进行
删除所有注释
添加行号和文件名标识,以便于调试和编译产生的错误和警告
保留所有"#pragma"指令,编译器需要使用它们
3. 目标代码的地址还没确定怎么办?连接器的作用。
静态链接——模块拼装
链接过程:地址和空间的分配、符号决议(静态的)、重定位
相关文章推荐
- [读书笔记]程序员的自我修养 chp9
- 【读书笔记】《程序员的自我修养》----ELF格式
- [读书笔记]程序员的自我修养(1)
- 《程序员的自我修养》读书笔记3 -- 动态链接
- 程序员的自我修养-读书笔记(1)
- 《程序员的自我修养》读书笔记
- 程序员的自我修养-读书笔记
- 《程序员的自我修养》读书笔记 PAGE15、PAGE18
- 读书笔记之: 程序员的自我修养——链接,装载与库(第1,2部分)
- 《读书笔记》程序员的自我修养之线程安全问题
- 【读书笔记】程序员的自我修养:链接、装载与库 第二章 编译与链接
- 程序员的自我修养 读书笔记 chp1
- 程序员的自我修养第七章读书笔记-动态链接
- 读书笔记之: 程序员的自我修养——链接,装载与库(第3,4部分)
- 《读书笔记》程序员的自我修养之线程模型
- 程序员的自我修养-读书笔记(2)
- 程序员的自我修养 读书笔记 chp2
- [读书笔记]程序员的自我修养 chp11
- 《程序员的自我修养》读书笔记4
- 《程序员的自我修养》读书笔记 PAGE98*a ^= *b ^= *a ^= *b