我想通过makefile中的-rpath
选项指定库搜索路径,而不是使用LD_LIBRARY_PATH。我怎样才能做到这一点?假设搜索路径是当前目录。
答案 0 :(得分:3)
您有三种选择:
使用LDFLAGS指定ld
为编译和链接创建单独的规则,您可以直接将-rpath=/what/ever
与ld
混为一起
使用-Wl,ldoption
gcc
将ldoption
传播到链接器。在你的情况下:
gcc ... -Wl,rpath=/what/ever ...
请注意,LD_LIBRARY_PATH用于动态链接器/加载器(ldd
),而不是用于创建可执行文件的链接器(ld
)。
答案 1 :(得分:0)
实施例
LDFLAGS += --rpath-link /home/hp/Desktop/staging_dir/target-mips_uClibc-0.9.30.1/root-brcmref/lib/ld-uClibc.so.0
make文件示例:
all: test
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^
test: test1.o test2.o
$(CC) $(LDFLAGS) -o $@ $^
答案 2 :(得分:0)
需要将-rpath
标志传递给链接器。使用-Wl
前缀所有标志以使gcc将它们传递给ld,例如
LDFLAGS = -Wl,-rpath -Wl,.