JavaScript is required to for searching.
跳过导航链接
退出打印视图
链接程序和库指南     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

第 1 部分使用链接编辑器和运行时链接程序

1.  Oracle Solaris 链接编辑器介绍

2.  链接编辑器

3.  运行时链接程序

4.  共享目标文件

命名约定

记录共享目标文件名称

在归档中包含共享目标文件

已记录名称冲突

具有依赖项的共享目标文件

依赖项排序

作为过滤器的共享目标文件

生成标准过滤器

生成辅助过滤器

过滤组合

filtee 处理

性能注意事项

使用 elfdump 分析文件

底层系统

延迟装入动态依赖项

与位置无关的代码

SPARC: -K pic-K PIC 选项

删除未使用的材料

最大化可共享性

将只读数据移动到文本中

折叠多重定义数据

使用自动变量

动态分配缓冲区

最小化分页活动

重定位

符号查找

执行重定位的时间

组合重定位节

复制重定位

使用 -B symbolic 选项

配置共享目标文件

5.  接口和版本控制

6.  使用动态字符串标记建立依赖性

第 2 部分快速参考

7.  链接编辑器快速参考

8.  版本控制快速参考

第 3 部分高级主题

9.  直接绑定

10.  Mapfile

11.  可扩展性机制

第 4 部分ELF 应用程序二进制接口

12.  目标文件格式

13.  程序装入和动态链接

14.  线程局部存储

第 5 部分附录

A.  链接程序和库的更新及新增功能

B.  System V 发行版 4(版本 1)Mapfile

索引

第 4 章

共享目标文件

共享目标文件是一种由链接编辑器创建并通过指定 -G 选项生成的输出形式。在以下示例中,共享目标文件 libfoo.so.1 根据输入文件 foo.c 生成。

$ cc -o libfoo.so.1 -G -K pic foo.c

共享目标文件是一个不可分割的单元,根据一个或多个可重定位目标文件生成。共享目标文件可以与动态可执行文件绑定在一起以形成可运行进程。顾名思义,共享目标文件可供多个应用程序共享。由于这种潜在的深远影响,因此与先前章节相比,本章更深入地介绍了这种链接编辑器输出形式。

对于要绑定到动态可执行文件或其他共享目标文件的共享目标文件,首先它必须可用于链接编辑所需的输出文件。在此链接编辑过程中,会解释所有输入共享目标文件,就像已将这些共享目标文件添加到要生成的输出文件的逻辑地址空间。共享目标文件的所有功能均可供输出文件使用。

所有输入共享目标文件都将成为此输出文件的依赖项。此输出文件中维护了少量簿记信息以描述这些依赖项。运行时链接程序将在创建可运行进程的过程中解释此信息并完成这些共享目标文件的处理。

以下各节详述了如何在编译环境和运行时环境中使用共享目标文件。运行时链接中介绍了这些环境。