找不到版本“GLIBCXX_3.4.22”

时间:2017-03-28 13:26:16

标签: c++ ubuntu-16.04 libstdc++

我在VM Ubuntu 16.04上构建了一个C ++应用程序,我在其上安装了g ++编译器6.2.0以支持C ++ 14的功能。当我尝试在新的干净VM 16.04上运行它时,它默认为g ++ 5.4.0错误 / usr / lib / x86_64-linux-gnu / libstdc ++。so.6:版本`GLIBCXX_3.4.22'找不到< / strong>弹出。
我注意到在VM上安装了更新的编译器库libstdc ++。so.6.0.22。在干净的VM上,我想避免更新编译器,所以我尝试只安装最新的libstdc ++ 6软件包。但是,安装的库是libstdc ++。so.6.0.21,因此问题仍然存在。如何专门安装libstdc ++。so.6.0.22版本?

2 个答案:

答案 0 :(得分:27)

您需要将libstdc ++ 6升级到此类

的最新版本
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.9
sudo apt-get upgrade libstdc++6

之后,您可以检查是否获得了这样的GLIBCXX所需版本:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

答案 1 :(得分:1)

您可以尝试使用pinning来确保只将所需的软件包更新为更新的版本。

或者,您可以使用g ++ 5.4编译程序,因为根据this page,此编译器已经支持所有c ++ 14,唯一的区别是g ++ - 6默认为 -std = c ++ 14 ,而使用g ++ - 5则必须明确设置语言标准。