如何手动设置哪个版本' libstdc ++。so.6'用而不是使用最新的?

时间:2018-04-20 08:48:21

标签: c++ gcc libstdc++

我的服务器出错了。

  

版本`GLIBCXX_3.4.21'找不到

经过一番调查后,我发现' libstdc ++。so.6'在我的本地计算机上构建应用程序时使用的版本比在服务器上更高级。所以我得到了这个错误,因为该版本在服务器上不可用。从我读到的,我可以通过升级&libstdc ++修复它.so.6'在服务器上最新的一个,但我不能这样做,因为受限制的访问。 有没有办法降级或使我的本地使用旧版本作为默认值?

1 个答案:

答案 0 :(得分:1)

链接应用程序时,请指定-Wl,-rpath=$ORIGIN以使其在可执行文件所在的文件夹中搜索共享库。然后将libstdc++.so.6和其他应用程序依赖项(使用ldd找到它们)复制到您的应用程序文件夹中并分发该文件夹。请参阅man ld.so,关于$ORIGIN

的部分