找不到版本"GLIBCXX_3.4.22"

dk1*_*k13 12 c++ libstdc++ ubuntu-16.04

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

Kri*_*rya 30

你需要将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
Run Code Online (Sandbox Code Playgroud)

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

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
Run Code Online (Sandbox Code Playgroud)


Ger*_*lny 1

您可以尝试使用固定来确保只有您想要的软件包更新到较新的版本。

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