libstdc++库版本较低的解决办法
时间:2022-07-22
本文章向大家介绍libstdc++库版本较低的解决办法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
小编最近使用一个程序xxx.exe时,出现了如下报错:
xxx.exe: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by xxx.exe)
在此把解决方法做个备忘。
1. 查看libstdc++.so.6库的信息
看了一下/lib64目录下的libstdc++.so.6,是一个软链接,链接到同目录下的libstdc++.so.6.0.19:
lrwxrwxrwx. 1 root root 19 Jan 1 2000 /lib64/libstdc++.so.6 -> libstdc++.so.6.0.19
使用如下命令,可以查看支持的GLIBCXX的版本:
strings /lib64/libstdc++.so.6 | grep GLIBC
结果如下:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
所以本机上C++标准库的版本只有19,而程序需要20,因此需要更新这个库。
2. 获取高版本的libstdc++库
首先在本机上查看一下,使用如下命令:
find / -name libstdc++.so.6*
结果如下:
/usr/lib64/libstdc++.so.6
/usr/lib64/libstdc++.so.6.0.19
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/opt/intel/clck/2019.5/lib/intel64/libstdc++.so.6
/opt/intel/clck/2019.5/lib/intel64/libstdc++.so.6.0.20
/opt/intel/inspector_2019.5.0.602103/lib64/libstdc++.so.6
/opt/intel/inspector_2019.5.0.602103/lib64/libstdc++.so.6.0.21
/opt/intel/inspector_2019.5.0.602103/lib32/libstdc++.so.6
/opt/intel/inspector_2019.5.0.602103/lib32/libstdc++.so.6.0.21
/opt/intel/advisor_2019.5.0.602216/lib64/libstdc++.so.6.0.21
/opt/intel/advisor_2019.5.0.602216/lib64/libstdc++.so.6
/opt/intel/advisor_2019.5.0.602216/lib32/libstdc++.so.6
/opt/intel/advisor_2019.5.0.602216/lib32/libstdc++.so.6.0.21
/opt/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/lib/libstdc++.so.6.0.24
/opt/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/lib/libstdc++.so.6
/opt/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/opt/anaconda3/pkgs/libstdcxx-ng-7.2.0-h7a57d05_2/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
/opt/anaconda3/lib/libstdc++.so.6
/opt/anaconda3/lib/libstdc++.so.6.0.24
/opt/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/opt/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.24
可以看到,在小编的机器上,恰好在intel编译器和anaconda中,都有更高版本的libstdc++库。如果机器上没有更高版本的库,可以在网上找到。
例如,小编选了
/opt/anaconda3/lib/libstdc++.so.6.0.24
这个库文件,用上面同样的命令,可以看到支持到GLIBCXX_3.4.24,满足需要了。
3. 更新目标目录下的libstdc++库
将/opt/anaconda3/lib下的 libstdc++.so.6.0.24 复制到/lib64下:
cp /opt/anaconda3/lib/libstdc++.so.6.0.24 /lib64/
进入/lib64,将原来的软链接删除:
rm libstdc++.so.6
重新进行链接:
ln -s libstdc++.so.6.0.24 libstdc++.so.6
程序便可正常使用了。
参考资料:
https://www.jianshu.com/p/ef510e0def25
- C加加游戏编程,大神十年的绝技,正确的入门,这才叫学习
- 我们应该担心吗?人工智能现在可以通过交谈来学习新单词!
- 印度财政部:比特币是纯粹投机行为 区块链资产是“庞氏骗局”
- 法律人工智能实验室成立,法官和律师会丢饭碗吗?
- 让GridView中CheckBox列支持FireFox
- 在ASP.NET MVC中通过URL路由实现对多语言的支持
- AI加持下的假肢将会越来越聪明
- 通过几个Hello World感受.NET Core全新的开发体验
- ASP.NET MVC三个重要的描述对象:ControllerDescriptor
- 基于自制数据集的MobileNet-SSD模型训练
- .NET Core采用的全新配置系统[1]: 读取配置数据
- ASP.NET MVC三个重要的描述对象:ActionDescriptor
- 升级比特币区块链后,以特币已叩响成功的大门
- .NET Core采用的全新配置系统[2]: 配置模型设计详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 图像的几何变换——平移、镜像、缩放、旋转、仿射变换 OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)数字图像处理笔
- 详说C#中的结构struct
- c#结构体总结
- 跨域问题(CORS / Access-Control-Allow-Origin)
- C#中的结构体与类的区别
- c#结构体与类的区别,及使用技巧 C#中的结构体与类的区别
- hikvision SDK使用(转)
- 《Scikit-Learn与TensorFlow机器学习实用指南》 第11章 训练深度神经网络(上)
- 海康SDK开发步骤
- 《Scikit-Learn与TensorFlow机器学习实用指南》 第11章 训练深度神经网络(下)
- applet跨域访问的安全性问题(java.security.AccessControlException:access denied)
- JSON解析问题:net.sf.json.JSONException: There is a cycle in the hierarchy!
- 海康相机SDK联合c++标定
- 开发一个Node命令行小玩具全过程--高颜统计工具
- 消息未读之点不完的小红点(Node+Websocket)