库文件是怎么样的结构呢?
其实,库文件的结构也很简单。它就是“一堆”目标文件的集合。把目标文件做成库以后,我们在使用目
标文件中所实现的功能时,连接程序会自动在库文件里查找相应的目标文件,并使用它。这大大减少了我
们对目标文件的管理工作,减轻了代码重用的负担。
Lib 文件中的节
格式中所用到的“节”的概念再次出现在 格式中。不过, 文件的节要简单得多。先让我们
来看看它的整体结构:
是长名称节。这一节是一个字符串表。它包含了所有长目标文件名。如果后面的
中没有给出相应的目标文件名,我们就要到这一节中来查找。
就是目标文件节。这些节中存储着不同的目标文件的原始数据。
在库文件中,每一节都有两个部分。一个部分是头,另一个部分才是该节的数据;数据紧跟在头的后
面。头描述了该节数据的类型、长度等信息。这些头的格式都是相同的。其结构用 语言描述如下:
!""名称
#$ !""时间
%&' !""用户 &'
(&' !""组 &'
)* !""模式
如右图所示:
格式只有四种类型的节(),即 ,
, 和 ;其中 与
是可选节,很多 文件中都没有。而开头的
只是一个标识,它相当于 目标文件中的魔法数字。
它是一个长度为 * 的字符串,值为“+,-./。
,顾名思义,就是第一个节。它包含了库中所有的符号名
以及这些符号所在的目标文件在库中的位置(绝对偏移)。
就是第二节。它的内容和 是相同的。不同
的是, 是一个有序表,通过它来查找库中的符号比通过
来查找要快很多。
$
00