在 Oracle Solaris 操作系统 (Oracle Solaris Operating System, Oracle Solaris OS) 中,应用程序开发者可以使用链接编辑器 ld(1) 创建应用程序和库,并可以借助于运行时链接程序 ld.so.1(1) 执行这些目标文件。本手册适用于希望对 Oracle Solaris 链接编辑器、运行时链接程序以及相关工具的使用过程中涉及的概念进行充分了解的工程师。
注 - 此 Oracle Solaris 发行版支持使用 SPARC 和 x86 系列处理器体系结构的系统。支持的系统可以在 Oracle Solaris OS: Hardware Compatibility Lists(Oracle Solaris OS:硬件兼容性列表)中找到。本文档列举了在不同类型的平台上进行实现时的所有差别。
在本文档中,这些与 x86 相关的术语表示以下含义:
x86 泛指 64 位和 32 位的 x86 兼容产品系列。
x64 专指 64 位 x86 兼容 CPU。
“32 位 x86”指出了有关基于 x86 的系统的特定 32 位信息。
有关支持的系统,请参见 Oracle Solaris OS: Hardware Compatibility Lists(Oracle Solaris OS:硬件兼容性列表)。
本手册介绍了 Oracle Solaris 链接编辑器和运行时链接程序的操作。由于动态可执行文件和共享目标文件在动态运行时环境中非常重要,因此将重点介绍这两者的生成和用法。
本手册适用于对 Oracel Solaris 链接编辑器、运行时链接程序以及相关工具感兴趣的程序员(从好学的初学者到高级用户)。
初级程序员可以了解链接编辑器和运行时链接程序的基本操作。
中级程序员可以了解如何创建、使用以及有效地定制库。
高级程序员(例如语言工具开发者)可以学习如何解释和生成目标文件。
大多数程序员都不需要从头至尾阅读本手册。
第 1 章概述 Oracle Solaris OS 下的链接进程。本章适用于所有程序员。
第 2 章介绍链接编辑器的功能。本章适用于所有程序员。
第 3 章介绍代码和数据的执行环境以及程序控制的运行时绑定。本章适用于所有程序员。
第 4 章提供共享目标文件的定义,介绍它们的机制,并说明如何创建和使用它们。本章适用于所有程序员。
第 5 章介绍如何管理动态目标文件提供的接口的演变。本章适用于所有程序员。
第 6 章介绍用于监视的接口,以及在某些情况下用于执行修改和进行链接编辑器及运行时链接程序处理的接口。本章适用于高级程序员。
第 7 章是有关 ELF 文件的参考章节。本章适用于高级程序员。
第 8 章介绍线程局部存储。本章适用于高级程序员。
第 9 章 介绍链接编辑器的 mapfile 指令的版本 2。本章适用于高级程序员。
附录 A概述最常用的链接编辑器选项,本附录适用于所有程序员。
附录 B提供共享目标文件版本控制的命名约定和原则,本附录适用于所有程序员。
附录 C以示例的形式讲解如何使用保留的动态字符串标记定义动态依赖性,本附录适用于所有程序员。
附录 D介绍与直接绑定相关联的运行时符号搜索模型。本附录适用于高级程序员。
附录 E 介绍链接编辑器 mapfile 指令的版本 1。本章适用于高级程序员。
附录 F概述链接编辑器、运行时链接程序以及相关工具的新增功能以及更新,并指名了已添加这些新增功能和更新的相应发行版。
在本文档中,所有命令行示例均使用 sh(1) 语法。所有编程示例均采用 C 语言编写。
Oracle 客户可以通过 My Oracle Support 获取电子支持。有关信息,请访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info,或访问 http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs(如果您听力受损)。
下表介绍了本书中的印刷约定。
表 P-1 印刷约定
|
下表显示了 Oracle Solaris OS 中包含的缺省 UNIX shell 系统提示符和超级用户提示符。请注意,在命令示例中显示的缺省系统提示符可能会有所不同,具体取决于 Oracle Solaris 发行版。
表 P-2 shell 提示符
|