加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 共享对象文件的rpath

发布时间:2020-12-14 02:19:52 所属栏目:Linux 来源:网络整理
导读:可执行文件的rpath指定一个或多个目录,其中在运行时查找共享对象. 我的问题是 – 共享对象文件本身也有静态编译的rpath? 我最近在与共享对象链接时收到了运行时错误: ./example: /opt/swt/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (requ
可执行文件的rpath指定一个或多个目录,其中在运行时查找共享对象.

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

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

./example: /opt/swt/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./mylib.so)

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

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

解决方法

do shared object files themselves also have statically-compiled rpaths

它们可能(或可能不)取决于它们是否与-Wl,-rpath = …选项相关联.

This error indicates to me that the actually library itself – mylib.so,has an statically compiled rpath.

错误消息根本没有说明.你在哪里得到这个想法?

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

readelf -d mylib.so | grep 'R.*PATH'  # could also have RUNPATH

My understanding was that rpath only applied to executables,not shared objects. So does rpath also apply to shared objects?

您的理解不正确,RPATH(和RUNPATH)也适用于共享对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读