gpt4 book ai didi

linux - 如何使用 Makefile 中的 $ORIGIN 设置 DT_RUNPATH

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:33:55 34 4
gpt4 key购买 nike

例如下面将设置 RUNPATH

matthewh@ORAC:~/dev/test$ g++ test.cpp -ldl -Wl,-rpath,\$ORIGIN
matthewh@ORAC:~/dev/test$ objdump -x a.out | grep RUN
RUNPATH $ORIGIN

然而,作为一个更复杂的例子,我试图为一个库设置这个,这个库是用配置生成的 makefile 编译的。

我跑

export LDFLAGS=-Wl,-rpath,\$ORIGIN
./configure
make
objdump -x library.so | grep RUN
RUNPATH RIGIN

显然,Make 正在扩展 $O 而不是在输出中放置文字 $O。

我该如何克服这个问题?我试过转义它,但它在运行路径中显示了奇怪的输出。

好的,具体来说,我正在尝试从 OpenEXR 编译 ilmbase-2.2.1 并设置运行路径。它比单个 Makefile 更复杂,因为它使用递归 Make!

顶层 Makefile 最终设置了变量 LDFLAGS=我已经尝试按照其他地方的建议将其手动编辑为 $$ORIGIN 但仍然是 -Wl,-rpath,RIGIN

现在我有点卡住了。在设置路径后,通过使用某种丑陋的 ELF 编辑器重写它来编辑它。

最佳答案

哇哦。这似乎有效。

./configure LDFLAGS='-Wl,-rpath,\$$ORIGIN'

神奇的\$$ vs $$

gnu make 中的反斜杠是什么意思?

关于linux - 如何使用 Makefile 中的 $ORIGIN 设置 DT_RUNPATH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52870020/

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