例如,以下将设置RUNPATH
matthewh@ORAC:~/dev/test$ g++ test.cpp -ldl -Wl,-rpath,\$ORIGIN
matthewh@ORAC:~/dev/test$ objdump -x a.out | grep RUN
RUNPATH $ORIGIN
但是,作为一个更复杂的示例,我试图为使用由configure生成的makefile编译的库设置此属性。
我跑
export LDFLAGS=-Wl,-rpath,\$ORIGIN
./configure
make
objdump -x library.so | grep RUN
RUNPATH RIGIN
显然,Make正在扩展$ O,而不是在输出中放置原义的$ O。
我该如何克服呢?我试图转义它,但它会将奇怪的输出呈现给runpath。
好的,具体地说,我正在尝试从OpenEXR编译ilmbase-2.2.1并设置RUNPATH。它比单个Makefile更复杂,因为它使用的是递归Make!
最高级别的Makefile最终将变量LDFLAGS =设置为
我尝试按照其他地方的建议手动将其编辑为$$ ORIGIN,但仍然通过-Wl,-rpath,RIGIN
现在我有点卡住了。设置路径后,通过使用某种丑陋的ELF编辑器重写它,就无法对其进行编辑。
最佳答案
哇哦这似乎有效。
./configure LDFLAGS='-Wl,-rpath,\$$ORIGIN'
魔法\$$ vs $$
那么gnu make中的反斜杠是什么意思?