随笔分类 - 《程序员的自我修养》
摘要:书中举了个例子:在经过编译之后 接下来就要把这两个a.o,b.o文件合并在一起。4.1 空间与地址分配方法有很多种,最简单的就是:按序叠加就是把不同目标文件,一个接一个连在一起。这样的话,如果有上百个目标文件,那么最终的文件中就有上百个.text段,.data段,等等,由于他们每个都要对齐,浪费空间。(在x86中,段的对齐是按页对齐的,每个段都要至少有4KB)。那么可以通过相似段合并的方法解决。就是把不同目标文件的text,data放在一起。为了实现这一方法,链接器一般使用两步链接(Two-pass Linking)的方法。第一步空间与地址分配扫描所有输入文件,获得各个段的长度,属性,位置,建
阅读全文
摘要:这是关于《程序员的自我修养——装载,链接和库》一书的读书笔记,从第三章开始。第一章和第二章主要介绍操作系统和编译器的内容,不加赘述。目标代码(英语:object code)指计算机科学中编译器或汇编器处理源代码后所生成的代码,它一般由机器代码或接近于机器语言的代码组成。目标文件(英语:object file)即存放目标代码的计算机文件,它常被称作二进制文件(binaries)。(From WIKI)3.1 目标文件的格式目标文件,例如,windows下的PE文件,Linux下的ELF文件等等。“从广义上看,目标文件和可执行文件的格式几乎一样,我们将两者看成一种文件”。除了可执行文件,静态链接库
阅读全文
浙公网安备 33010602011771号