2

使用 HP-UX 时,我可以使用 chatr 实用程序报告共享库的各种内部属性。它还允许我修改我已构建的共享库的内部属性。

chatr 实用程序可以报告,并且在某些情况下可以修改,例如:

  1. 运行时绑定行为,
  2. 在构建时创建的嵌入式库路径列表,
  3. 库是否受运行时路径查找的影响,
  4. 内部名称,
  5. 等等等等

这样的实用程序可用于 Solaris 吗?

编辑:怪异!感谢 mark4o 在下面的回答,我重新访问了典型系统 .so 的 elfdump 输出(Sol 10 上的 libm.so.2)。然而,这是怪异的部分,我输入了错误的命令:

elfdump libm.so.2 | moe

令人惊奇的是,这给了我一个名为 moe 的实用程序的使用消息,该实用程序的手册页描述部分显示:

moe 实用程序显示了包含保留的运行时链接器标记的路径名的最佳扩展。这些标记可用于定义动态对象中的依赖关系、过滤器和运行路径。这些令牌在运行时的扩展,提供了一种灵活的机制来选择在这台机器上表现最好的对象和搜索路径。

这将帮助我解决为什么 libm.so.2 shlib 在两台不同的机器上都不兼容,导致我不完整的可执行文件无法在一台服务器上启动。

4

2 回答 2

2

有关显示信息,请参阅 Solariselfdumppvs实用程序。对于调试绑定问题,larimoe可能会有所帮助。但是,这些实用程序无法修改库。

于 2009-09-15T15:31:19.640 回答
2

从 Solaris 11(以及之前的一些 OpenSolaris 和 Solaris Express 版本,但不是 Solaris 10 或更早版本)开始,现在有一个用于修改运行时路径和类似属性的elfedit 工具。

于 2012-08-18T06:02:31.333 回答