链接程序和库指南

使用 -B symbolic

使用链接编辑器的 -B symbolic 选项,可以将符号引用绑定到共享库中的相应全局定义。此选项由来已久,因为设计它是为了在创建运行时链接程序本身时使用。

定义目标文件接口并将非公共符号降级为局部符号时,首选使用 -B symbolic 选项。请参见缩减符号范围。使用 -B symbolic 通常会产生某些非直观的负面影响。

如果插入以符号形式绑定的符号,则从以符号形式绑定的目标文件外部对此符号的引用将绑定到插入项。目标文件本身已在内部绑定。实际上,现在可以从进程中引用两个同名符号。导致复制重定位的以符号形式绑定的数据符号的插入情况同上。请参见复制重定位


注 –

以符号形式绑定的共享库由 .dynamic 标志 DF_SYMBOLIC 标识。此标志仅用于提供信息。运行时链接程序在这些目标文件中处理符号查找的方式与在任何其他目标文件中的方式相同。假设任一符号绑定均已在链接编辑阶段创建。