libstdc
++常见问题解答条目如何确保找到动态链接的库,链接到手册部分“
查找动态或共享库”,该部分说明了如何使用RPATH。
我的首选方法是使用RPATH,
$ORIGIN这意味着搜索动态库依赖项的起始位置与二进制文件所在的目录相同(请参阅ld.so(8))。因此,如果与链接
'-Wl,-rpath,$ORIGIN'(请注意引号,以防止$
ORIGIN被shell扩展),则可以将共享库安装在与已安装的二进制文件相同的目录中,并且在运行二进制文件时可以找到它们。或者,
'-Wl,-rpath,$ORIGIN/../lib'如果您希望在某个安装前缀下有单独的
bin和
lib目录,请使用。
由于该库与二进制文件一起安装在一些
ldconfig不会扫描的自定义路径中,并且不会
LD_LIBRARY_PATH破坏环境,因此不应该使用该版本的应用程序将永远找不到较新的libstdc
++。
确保还安装了
libstdc++.so.6指向
libstdc++.so.6.0.20文件的符号链接,以便
DT_NEEDEDfor
libstdc++.so.6可以找到该文件。



