【发布时间】:2011-02-19 15:34:51
【问题描述】:
我知道可以使用 readelf -d <elf> | grep RPATH 从 shell 检查给定的二进制文件,但是可以在进程中执行此操作吗?
类似于(我完全编造的系统调用):
/* get a copy of current rpath into buffer */
sys_get_current_rpath(&buffer);
我正在尝试在我们的代码库中诊断一些可疑的 SO 链接问题,并希望尽可能以这种方式检查 RPATH(我宁愿不必生成外部脚本)。
【问题讨论】:
-
请记住,在诊断共享库问题时,您还应该检查 RUNPATH 标记。因此,您应该改为
grep PATH。使用 RPATH 还是 RUNPATH 取决于链接器,两者之间存在细微但重要的区别:stackoverflow.com/a/52020177