链接程序和库指南

链接编辑

链接编辑可处理各种输入文件,这些文件通常由编译器、汇编程序或者 ld(1) 生成。链接编辑器会串联并解释这些输入文件内的数据以形成单个输出文件。虽然链接编辑器提供许多选项,但是生成的输出文件为以下四种基本类型之一:

图 1–1 中显示了这些输出文件及其创建过程中使用的主要链接编辑器选项。

动态可执行文件共享库通常共同称为动态库。本文档重点介绍动态库。

图 1–1 静态或动态链接编辑

链接编辑器输出文件,以及用于创建这些文件的主要链接编辑器选项。

静态可执行文件

许多发行版都建议不要创建静态可执行文件。实际上,这些版本中从未提供过 64 位系统归档文件库。因为静态可执行文件是基于系统归档文件库生成的,所以这种可执行文件包含关于系统实现的详细信息。这种自包含特性有许多缺点:

从 Solaris 10 发行版开始,不再提供 32 位系统归档文件库。如果没有这些库,尤其是 libc.a,不具备专业系统知识就无法创建静态可执行文件。请注意,链接编辑器处理静态链接选项的功能以及归档文件库的处理方式保持不变。