未找到版本"GLIBCXX_3.4.22"
Version `GLIBCXX_3.4.22' not found
我在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 您必须明确设置语言标准。
相关文章:
- 为cl.exe(Visual Studio代码)指定命令行C++版本
- 导入库可以跨dll版本工作吗
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 在clang++预处理器中确定gcc工具链版本
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 不同的Visual Studio版本中缺少.dll
- 用符号版本替换对函数的所有调用
- luaL_dofile在已知良好的字节码上失败,可以使用未编译的版本
- 正在解码MSVC 32位版本的程序集(作业).没有手术做什么
- 我需要分发哪些版本的可再分发文件
- CV_OCL_RUN宏如何在OpenCV(版本3.4.5)的goodFeaturesToTrack实现中工作?
- 在运行时读取 libstdc++ 版本
- 如何声明一个可以在整个程序中使用的全局 2d 3d 4d .. 数组(堆版本)变量?
- 使用稍旧版本的 GLIBCXX
- AWS 上的 GLIBCXX 版本错误
- 特定CXXABI和GLIBCXX版本的交叉编译
- GLIBCXX(libstdc++.so.6)与gcc版本之间的关系
- 运行在同一台计算机上编译的程序时,GLIBCXX版本错误
- libstdc++ GLIBCXX版本错误
- 指定O2标志时,gcc链接到错误的GLIBCXX版本