Oracle® Solaris 11.2 链接程序和库指南

退出打印视图

更新时间: 2014 年 7 月
 
 

链接编辑

链接编辑器 ld(1) 接受各种输入文件,这些文件通常是由编译器或汇编程序生成的文件,或是该链接编辑器之前调用的文件。链接编辑器会串联并解释这些输入文件内的数据,以形成输出文件。生成的输出文件是以下基本类型之一。

  • 动态可执行文件-要求运行时链接程序 ld.so.1(1) 进行干预以生成可运行进程的输入可重定位目标文件的串联。动态可执行文件通常具有一个或多个以共享目标文件形式存在的依赖项。

    使用 –z type=exec 选项时将创建动态可执行文件,或者未提供控制输出文件类型的其他选项时动态可执行文件是缺省值。

  • 与位置无关的可执行文件-共享目标文件的特殊情况,指定解释程序。应该基于与位置无关的代码创建与位置无关的可执行文件。与需要固定地址空间以执行操作的动态可执行文件不同,与位置无关的可执行文件可以在由 exec(2) 选择的任意地址处装入。

    使用 –z type=pie 选项时将创建与位置无关的可执行文件。

  • 可重定位目标文件-可在随后的链接编辑阶段使用的输入可重定位目标文件的串联。

    使用 –z type=reloc 选项或 –r 选项时将创建可重定位目标文件。

  • 共享目标文件-提供各种服务的输入可重定位目标文件的串联,运行时这些服务可能会绑定到动态可执行文件。应基于与位置无关的代码创建共享目标文件。共享目标文件可能依赖于其他共享目标文件。

    使用 –z type=shared 选项或 –G 选项时将创建共享目标文件。