gpt4 book ai didi

linux - 如何设置 DT_RPATH 或 DT_RUNPATH?

转载 作者:行者123 更新时间:2023-12-04 12:09:36 25 4
gpt4 key购买 nike

在 Linux 上,ld.so(8)手册页讨论了动态库的搜索顺序。它说 DT_RPATH已弃用,还提到 DT_RUNPATH .没有提到-rpath链接器选项。ld(1)手册页提到了 -rpath-rpath-link选项,但从未提及 DT_RPATHDT_RUNPATH除了描述图书馆搜索顺序,这当然与 ld.so(8) 中给出的信息不匹配。 .
最后还有一个 LD_RUN_PATH环境变量。 ld(1)如果 -rpath 说它使用和 -rpath-link选项未设置,但 ld.so(8)没有提到它。
我的直觉是 -rpath实际设置DT_RPATH , 和 -rpath-linkDT_RUNPATH ,但我无法在任何地方找到这一点。我一直用-rpath ;如果与DT_RPATH相同比我不应该使用它,但是我在动态链接上找到的操作方法文章说要使用它,所以我不确定它是一样的。
有人可以澄清如何DT_RPATHDT_RUNPATH是否设置,是否与-rpath相同和 -rpath-link ?

最佳答案

-rpath用于创建 DT_RPATH 的命令行选项.dynamic 中的条目部分,但由于 DT_RPATH被弃用,取而代之的是 DT_RUNPATH , 现代链接器版本使用 DT_RUNPATH反而。这意味着使用 -rpath在一个非常旧的链接器上,您将使用 .d_val = DT_RPATH 创建一个动态部分条目。 ,但如果您的链接器是最新的,您将创建一个 .d_val = DT_RUNPATH反而。-rpath-link option 是一个不创建任何条目的选项,但用于取代 DT_RUNPATH正在链接的库的动态部分中存在的条目。因此,在编译时,您通常应该不需要它。您可以在 man 1 ld 上找到更多信息(向下滚动到 -rpath-link= )或在 this other answer .

关于linux - 如何设置 DT_RPATH 或 DT_RUNPATH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67131565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com