首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在makefile中指定RPATH?

如何在makefile中指定RPATH?
EN

Stack Overflow用户
提问于 2011-07-10 09:00:34
回答 1查看 35.5K关注 0票数 19

我正在尝试在我的二进制文件中指定rpath。我的makefile看起来像这样-

代码语言:javascript
复制
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的版本是-

代码语言:javascript
复制
gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
GNU ld (GNU Binutils for Ubuntu) 2.21.0.20110327
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-10 09:10:45

如果您设置了变量,则可能应该使用它们。不这样做是愚蠢的,特别是当make不会神奇地为您设置这些变量的时候!:)

代码语言:javascript
复制
main: main.c
    $(CC) $(CFLAGS) $(LDFLAGS) -o main main.c

另一个问题是LDFLAGS,它应该是

代码语言:javascript
复制
LDFLAGS="-Wl,-rpath,../libs/"

通常,将选项传递给链接器的gcc开关是-Wl,,这是必需的,因为gcc本身可能不理解纯-rpath链接器选项。虽然不同版本的gcc的一些构建都接受-rpath,但我从来没有在gcc的手册页或信息页中看到过它的文档。为了获得更好的可移植性,应该首选-Wl,-rpath

票数 47
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6638500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档