未找到版本"GLIBCXX_3.4.22"

Version `GLIBCXX_3.4.22' not found

本文关键字:GLIBCXX 版本      更新时间:2023-10-16

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

你需要像这样将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

可以尝试使用固定来确保仅将所需的包更新到较新版本。

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