链接程序和库指南

特定于系统的共享库

将在运行时扩展动态标记 $OSNAME$OSREL$PLATFORM,以提供特定于系统的信息。这些标记可用于过滤器、运行路径或依赖项定义。

将扩展 $OSNAME 以反映操作系统的名称,如组合使用实用程序 uname(1)-s 选项时所示。将扩展 $OSREL 以反映操作系统的发行版级别,如 uname -r 所示。将扩展 $PLATFORM 以反映基础硬件实现,如 uname -i 所示。

以下示例说明了如何设计辅助过滤器 libfoo.so.1 以使其访问特定于平台的 filtee libbar.so.1


$ LD_OPTIONS='-f /platform/$PLATFORM/lib/libbar.so.1' \

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

$ dump -Lv libfoo.so.1 | egrep "SONAME|AUXILIARY"

  [1]    SONAME    libfoo.so.1

  [2]    AUXILIARY /platform/$PLATFORM/lib/libbar.so.1

此机制在 Solaris 操作环境中用于提供特定于平台的共享库 /lib/libc.so.1 的扩展。