我正在尝试在我的二进制文件中指定rpath。我的makefile看起来像这样-
CC=gcc
CFLAGS=-Wall
LDFLAGS= -rpath='../libs/'
main: main.c
gcc -o main main.c
clean:
rm -f main main.o 但是,当我使用命令readelf -a ./main | grep rpath查询rpath时,我什么也得不到,我尝试将rpath指定为LDFLAGS= "-rpath=../libs/",但即使这样似乎也不起作用。
有没有人可以发布一个关于我应该如何在makefile中指定rpath的示例?
GCC和ld的版本是-
gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
GNU ld (GNU Binutils for Ubuntu) 2.21.0.20110327发布于 2011-07-10 09:10:45
如果您设置了变量,则可能应该使用它们。不这样做是愚蠢的,特别是当make不会神奇地为您设置这些变量的时候!:)
main: main.c
$(CC) $(CFLAGS) $(LDFLAGS) -o main main.c另一个问题是LDFLAGS,它应该是
LDFLAGS="-Wl,-rpath,../libs/"通常,将选项传递给链接器的gcc开关是-Wl,,这是必需的,因为gcc本身可能不理解纯-rpath链接器选项。虽然不同版本的gcc的一些构建都接受-rpath,但我从来没有在gcc的手册页或信息页中看到过它的文档。为了获得更好的可移植性,应该首选-Wl,-rpath。
https://stackoverflow.com/questions/6638500
复制相似问题