首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享对象文件的rpath

共享对象文件的rpath
EN

Stack Overflow用户
提问于 2015-05-21 16:58:53
回答 1查看 9.3K关注 0票数 11

可执行文件的rpath指定一个或多个目录,其中要在运行时查找共享对象。

我的问题是-共享对象文件本身是否也有静态编译的rpath

最近,在与共享对象链接时,我收到了一个运行时错误:

代码语言:javascript
复制
./example: /opt/swt/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./mylib.so)

这个错误告诉我,实际库本身- mylib.so本身有一个静态编译的rpath

我的理解是,rpath只适用于可执行文件,而不是共享对象。那么rpath也适用于共享对象吗?

EN

回答 1

Stack Overflow用户

发布于 2015-05-21 17:13:46

共享对象文件本身也有静态编译的rpaths吗?

它们可能(或不可能)取决于它们是否与-Wl,-rpath=...选项链接。

这个错误告诉我,实际库本身- mylib.so本身有一个静态编译的rpath

错误消息根本没有这样说。你从哪里得到这个想法的?

如果您想知道mylib.so是否有DT_RPATH,请执行以下操作:

代码语言:javascript
复制
readelf -d mylib.so | grep 'R.*PATH'  # could also have RUNPATH

我的理解是,rpath只适用于可执行文件,而不是共享对象。那么rpath也适用于共享对象吗?

您的理解是不正确的,RPATH (和RUNPATH)同样适用于共享对象。

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

https://stackoverflow.com/questions/30379996

复制
相关文章

相似问题

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