Linux 共享对象文件的rpath

Linux 共享对象文件的rpath,linux,shared-libraries,rpath,Linux,Shared Libraries,Rpath,可执行文件的rpath指定一个或多个目录,在运行时在其中查找共享对象 我的问题是-共享对象文件本身是否也有静态编译的rpaths 我最近在与共享对象链接时收到一个运行时错误: ./example: /opt/swt/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./mylib.so) 这个错误向我指出,实际上库本身--mylib.so,有一个静态编译的rpath 我的理解是,rpath只应用于可执行文

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

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

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

./example: /opt/swt/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./mylib.so)
这个错误向我指出,实际上库本身--
mylib.so
,有一个静态编译的
rpath

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

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

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

这个错误向我指出,实际上库本身--
mylib.so
,有一个静态编译的
rpath

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

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

readelf -d mylib.so | grep 'R.*PATH'  # could also have RUNPATH
我的理解是,
rpath
只应用于可执行文件,而不是共享对象。那么,
rpath
是否也适用于共享对象

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