解决报错version `GLIBCXX_3.4.20‘ not found

这篇博客介绍了如何处理Ubuntu系统运行程序时遇到GLIBCXX_3.4.20版本未找到的错误。作者按照步骤删除原有软链接并尝试指向最新动态库,但发现系统中最高版本为3.4.19,不足解决问题。最终,通过从其他博主的网盘下载libstdc++.so.6.0.26并安装,成功解决了GLIBCXX_3.4.20缺失的问题。

解决报错version `GLIBCXX_3.4.20' not found


具体流程参考 https://blog.youkuaiyun.com/zhangyingna667/article/details/107290495/

进行到

3.4删除原来软连接:
rm -rf libstdc++.so.6

3.5将默认库的软连接指向最新动态库:
ln -s libstdc++.so.6.0.25 libstdc++.so.6

发现我的/usr/lib64/ 中最新只有libstdc++.so.6.0.19,升级后仍然没有GLIBCXX_3.4.20。

解决方法:感谢博主 https://blog.youkuaiyun.com/weixin_44221035/article/details/103935537
从其网盘中下载了libstdc++.so.6.0.26,安装后问题解决。

<think> 嗯,用户提出了关于解决 &#39;version GLIBCXX_3.4.20 not found&#39; 错误的具体需求。从用户提供的引用资料来看,ta应该是在运行某些程序时遇到了这个动态链接库缺失的问题,特别是引用[2]直接提到了这个错误。 用户可能正在尝试运行某个依赖较新C++标准库的应用程序,比如MATLAB扩展或深度学习框架。考虑到ta引用了conda环境路径,用户很可能是在Python科学计算环境中遇到这个问题。这个错误通常发生在系统自带的libstdc++.so.6版本过旧时。 让我整理解决方案时需要注意几点:首先必须保留旧版本库的备份以避免系统崩溃,其次要确认目标路径是否正确,不同Linux发行版的库路径可能不同。用户提供的引用中包含了三种方法:直接替换库文件、建立软链接、更新gcc编译器,其中最安全的是更新gcc的方法,但耗时最长。 考虑到用户可能是技术人员但未必熟悉系统底层,准备把解决方案按风险排序:先建议最安全的软链接方案,再提供替换库文件的方法。必须强调备份的重要性,并在最后说明长期解决方案是升级gcc——虽然这需要编译时间,但能从根本上解决问题。 另外注意到用户引用的方案涉及MATLAB和conda环境,在回答中特别说明这两种情况的处理差异:MATLAB通常使用自带的库,而conda环境可能需要更新gcc包。用户没有提供具体环境信息,所以需要给出通用方案的同时提示环境适配要点。 最后生成的扩展问题应该覆盖常见相关场景:如何检查当前库版本、更新gcc的替代方案、预防此类错误的方法等。特别是预防措施对科研计算用户很重要,ta们经常需要安装最新科研软件。 对了,所有命令行操作都需要用代码块清晰标示,路径变量要用$符号表示以便用户替换。对于glibcxx版本号这样的专有名词,在回答中保持大写一致性——虽然错误提示是小写,但正式名称应该写作GLIBCXX_3.4.20。 </think> 解决 `version &#39;GLIBCXX_3.4.20&#39; not found` 错误的步骤如下(根据引用[2]的核心思路并结合系统安全操作): ### 🔧 解决步骤 1. **确认缺失版本** 在终端运行: ```bash strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX ``` 若输出中无 `GLIBCXX_3.4.20`,则需升级库文件。 2. **获取新版库文件** **方法1(推荐)**:通过系统包管理器升级 GCC ```bash sudo apt update sudo apt install gcc-10 g++-10 # Ubuntu 20.04+ 默认提供 GLIBCXX_3.4.28 ``` **方法2**:手动下载高版本库 从 [GCC镜像站](https://mirrors.kernel.org/gnu/gcc/) 下载对应版本,编译后提取 `libstdc++.so.6.0.28`(含GLIBCXX_3.4.20)。 3. **替换库文件(谨慎操作)** ```bash # 备份原库文件! sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.bak # 复制新库(假设新库在 ~/downloads/) sudo cp ~/downloads/libstdc++.so.6.0.28 /usr/lib/x86_64-linux-gnu/ # 重建软链接 cd /usr/lib/x86_64-linux-gnu sudo rm libstdc++.so.6 sudo ln -s libstdc++.so.6.0.28 libstdc++.so.6 ``` 4. **验证修复** 再次执行: ```bash strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.20 ``` 应显示 `GLIBCXX_3.4.20` > ⚠️ **特殊环境处理** > - **Conda环境**:若错误发生在conda环境内,需激活环境后执行 `conda install libgcc` > - **MATLAB**:将新库复制到MATLAB的运行时库路径 `matlabroot/bin/glnxa64/`[^1] ### 📚 根本解决方案 建议优先通过 `apt install libstdc++6` 更新系统库,或安装新版GCC编译器。手动替换库可能导致依赖冲突,仅作为临时方案。 ### ❓相关问题 1. 如何安全升级系统中的GLIBC版本? 2. Conda环境中出现 `GLIBCXX` 缺失错误该如何解决3. 编译安装GCC时如何避免破坏系统稳定性? 4. 如何查看程序依赖的动态链接库版本? [^1]: 引用自用户提供的备份替换方案 [^2]: 引用自用户提供的版本检查命令 [^3]: 引用自用户提供的软链接修复范例
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值