如何在makefile中指定-rpath

时间:2012-12-11 13:21:46

标签: c linux gcc

我想通过makefile中的-rpath选项指定库搜索路径,而不是使用LD_LIBRARY_PATH。我怎样才能做到这一点?假设搜索路径是当前目录。

3 个答案:

答案 0 :(得分:3)

您有三种选择:

  • 使用LDFLAGS指定ld

  • 的选项
  • 为编译和链接创建单独的规则,您可以直接将-rpath=/what/everld混为一起

  • 使用-Wl,ldoption gccldoption传播到链接器。在你的情况下:

    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,.