答案1
当您prelink
在 ELF 二进制文件上运行时,它只会检查二进制文件本身及其依赖项(如 ELF.dynamic
和.dynstr
部分中所引用)。
您应该能够使用:
prelink --libs-only libone.so libtwo.so [...]
如果一个库依赖于另一个库,您可能需要在同一命令行上一起指定它们(即,如果它们不在正常的链接器路径中)。
然而,预链接的一个重要部分是能够确定最佳加载位置每一个对于进程的库,您可能无法通过单独执行库来获得预链接的全部好处。只要满足以下两个条件,这种情况就不会发生:
- 您使用共享缓存 (
/etc/prelink.cache
) 以便所有库都获得唯一的基础 -m
预链接时不使用(节省内存)
确认操作成功
prelink --print-cache