【发布时间】:2021-07-11 20:29:49
【问题描述】:
在 Linux 上,ld.so(8) 手册页讨论了动态库的搜索顺序。它说DT_RPATH 已弃用,还提到DT_RUNPATH。没有提到-rpath 链接器选项。
ld(1) 手册页提到了-rpath 和-rpath-link 选项,但从未提及DT_RPATH 或DT_RUNPATH,除非在描述库搜索顺序时,这当然与@ 中给出的信息不匹配987654330@.
最后有一个LD_RUN_PATH 环境变量。 ld(1) 表示在未设置 -rpath 和 -rpath-link 选项时使用,但 ld.so(8) 未提及。
我的直觉是-rpath 实际上设置了DT_RPATH,而-rpath-link 设置了DT_RUNPATH,但我无法在任何地方找到这一点。我一直用-rpath;如果它与DT_RPATH 相同,我就不应该使用它,但是我在动态链接上找到的操作方法文章说要使用它,所以我不确定它是否相同。
有人可以澄清DT_RPATH 和DT_RUNPATH 是如何设置的,它们是否与-rpath 和-rpath-link 相同?
【问题讨论】:
标签: linux shared-libraries ld