【发布时间】:2017-01-10 07:45:23
【问题描述】:
我正在为 linux 机器开发一个共享库,它是相对于使用 rpath 的主可执行文件动态加载的。 现在,库本身尝试相对于其位置动态加载其他库,但没有 rpath(我使用 scandir 搜索某个文件夹中的共享库 - 我还不知道它们的名称)。
仅当工作目录设置为共享库位置时才有效,否则我会按预期查看不同的目录。
共享库是否有任何实用、可靠的方法来确定其所在位置?
我知道,我可以使用 /proc/self/maps 或类似的东西来获取加载的文件,但这仅适用于库知道自己的名称。
另一个想法是使用 dlinfo(),但要使用它,共享库需要知道自己的句柄。
【问题讨论】:
标签: linux shared-libraries dynamic-loading