设为首页 加入收藏

TOP

2.2.3.1 连接器如何查找库
2013-10-07 14:17:49 来源: 作者: 【 】 浏览:78
Tags:2.2.3.1 连接器 如何 查找

2.2.3   使用库文件

到此,了解了一些基本的术语,现在可以学习如何来使用库了。

使用库必须:

1) 包含库的头文件。

2) 使用库中的函数和变量。

3) 把库连接进可执行程序。

目标模块没有加入库时,也可执行上述步骤。对于C/C++(www.cppentry.com)的分段编译,包含头文件和连接目标模块是基本步骤 。

2.2.3.1  连接器如何查找库

当C或C++(www.cppentry.com)要对函数和变量进行外部引用时,根据引用情况,连接器会选择两种处理方法中的一种。如果还未遇到过这个函数或变量的定义,连接器会把它的标识符加到“未解析的引用”列表中。如果连接器遇到过函数或变量定义,那么这就是已解决的引用。

如果连接器在目标模块列表中不能找到函数或变量的定义,它将去查找库。库有某种索引方式,连接器不必到库里查找所有目标模块—而只需浏览索引。当连接器在库中找到定义后,就将整个目标模块而不仅仅是函数定义连接到可执行程序。注意,仅仅是库中包含所需定义的目标模块加入连接,而不是整个库参加连接(否则程序会变得毫无意义的庞大)。如果想尽量减小程序的长度,当构造自己的库时,可以考虑一个源代码文件只放一个函数。这要求更多的编辑工作,但它对使用者来说是有益的。

因为连接器按指定的顺序查找文件,所以,用户使用与库函数同名的函数,把带有这种函数的文件插到库文件名列表之前,就能用他自己的函数取代库函数。由于在找到库文件之前,连接器已先用用户所给定的函数来解释引用,因此被使用的是用户的函数而不是库函数。注意,这可能是一个bug,并且C++(www.cppentry.com)名字空间禁止这样做。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.2.3.3 使用简单的C语言库 下一篇2.2.3.2 秘密的附加模块

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: