链接程序和库指南

运行时链接

运行时链接涉及绑定目标文件(这些目标文件通常由以前的一个或多个链接编辑过程生成),以生成可运行进程。在链接编辑器生成这些目标文件的过程中,会生成相应簿记信息来表示已验证的绑定要求。利用此信息,运行时链接程序可以装入、重定位并完成绑定过程。

在进程执行过程中,运行时链接程序的功能将变为可用。通过在需要时添加附加共享库,这些功能可以用于扩展进程的地址空间。运行时链接过程中涉及的两个最常见组件为动态可执行文件共享库

动态可执行文件是在运行时链接程序控制下执行的应用程序。这些应用程序通常具有共享库(由运行时链接程序定位并绑定来创建可运行进程)形式的依赖性。动态可执行文件是链接编辑器生成的缺省输出文件。

共享库向动态链接系统提供主要组成单元。共享库类似于动态可执行文件,但是,系统尚未为其指定虚拟地址。

动态可执行文件通常依赖于一个或多个共享库。通常,必须将一个或多个共享库绑定到动态可执行文件以生成可运行进程。因为共享库可被许多应用程序使用,所以其构造的各个方面直接影响共享性、版本控制以及性能。

共享库是由链接编辑器处理还是由运行时链接程序处理,可以使用共享库的环境来区分:

编译环境

可由链接编辑器处理共享库,以生成动态可执行文件或其他共享库。共享库成为要生成的输出文件的依赖项。

运行时环境

共享库可由运行时链接程序处理,并与一个动态可执行文件共同生成可运行进程。