跳过导航链接 | |
退出打印视图 | |
![]() |
手册页第 1 部分:用户命令 Oracle Solaris 11 Information Library (简体中文) |
- 显示路径名的最佳扩展
moe [-c] [-32 | -64] [-s | -v] path
moe 实用程序显示包含保留的运行时链接程序标记的路径名的最佳扩展。这些标记可用于定义动态对象中的依赖项、filtee 和运行路径。这些运行时标记的扩展为选择能够在该计算机上以最佳性能运行的对象和搜索路径提供了灵活的机制。参见 ld.so.1(1)。
例如,标记 $HWCAP 可用于表示过滤器和依赖项。此标记的运行时解释使所分析的一系列对象能够确定它们是否适合随某个进程装入。这些对象根据每个对象需要执行的硬件功能排序。moe 返回最适合在当前平台上执行的对象的名称。
moe 通过将所提供的 path 传递到 dlmopen(3C),同时传递 RTLD_FIRST 标志来分析路径名称。因此,保留标记的扩展是由 ld.so.1 执行的,就像在正在执行的进程中发生的扩展一样。尽管使用 dlmopen() 调用可对多个对象进行分析,但是 RTLD_FIRST 标志可确保只处理最佳对象。
缺省情况下,moe 对指定的 path 分析两次。第一次分析会查找 32 位对象。第二次分析(如果适用)会查找 64 位对象。通常,32 位对象和 64 位对象分别被置于不同的目录中。这些目录的名称通常能够反映目录所包含的对象类。如果 32 位对象和 64 位对象占用同一目录,可通过多次传递 moe 捕获所有实例。如果用户无法从所指定的路径名推断该目录可能包含的对象类,也可以灵活地使用多次传递。
有关运行时链接程序执行的保留标记扩展的完整说明,请参阅《链接程序和库指南》。
支持下列选项:
仅分析 32 位对象。
仅分析 64 位对象。
在每个路径名之前加上对象类作为前缀。
无提示。不显示任何最佳名称或错误诊断消息。仅提供一个错误返回值。此选项只有与 -32 和 -64 选项一起使用时才有意义。-s 选项不可与 -v 选项一起使用。
详细。如果无法确定最佳扩展名,则会向标准错误写入一条错误诊断消息。-v 选项不可与 -s 选项一起使用。
支持以下操作数:
要扩展的路径名。
以下示例使用 moe 显示了 /usr/lib/libc 目录中的对象的最佳扩展。此目录包含一系列 Intel 对象,构建这些对象是为了使用各种硬件功能。
% moe '/usr/lib/libc/$HWCAP' /usr/lib/libc/libc_hwcap.so.1
-c 选项可用于明确最佳对象的类。
% moe -c '/usr/lib/libc/$HWCAP' 32-bit: /usr/lib/libc/libc_hwcap.so.1
以下示例使用 moe 显示了 /opt/ISV/cpu 目录分层结构下的对象的最佳扩展。这些目录包含一系列针对各种平台构建的 SPARC 对象。
% moe -c -64 '/opt/ISV/$ISALIST/isa.so.1' 64-bit: /opt/ISV/sparcv9/isa.so.1
-v 可用于诊断未返回最佳名称的实例。如果尝试将前面的路径名作为 32 位对象进行检查,将会产生下面的诊断消息。
% moe -c -v -32 '/opt/ISV/$ISALIST/isa.so.1' 32-bit: /opt/ISV/sparcv9/isa.so.1: wrong ELF class: ELFCLASS64
当使用 -32 或 -64 选项时,成功的最佳扩展将返回 0,其他情况下将返回非零值。未使用 -32 或 -64 选项时,返回值始终为 0。
有关下列属性的描述,请参见 attributes(5):
|