如何解决 :libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found

news/2024/11/19 23:35:46/文章来源:https://www.cnblogs.com/michaelcjl/p/18432886

如何解决 :libstdc++.so.6: version `GLIBCXX_3.4.30‘ not found

问题描述:
当您尝试在Linux系统上运行某个程序或软件时,有时会遇到一个错误,提示libstdc++.so.6: version GLIBCXX_3.4.30 not found。这个错误表明您的系统缺少某个特定版本的C++标准库,具体来说就是GLIBCXX_3.4.30

原因:
这个问题的原因通常是因为您的系统上安装的libstdc++版本太旧,或者您的程序需要的是一个更新版本的libstdc++

解决方案:
升级GCC
GLIBCXX_3.4.30是GCC(GNU Compiler Collection)的某个版本中的C++标准库版本。您可以通过升级GCC来获取此版本。

在基于Debian的系统(如Ubuntu)上,可以使用以下命令:

sudo apt-get update
sudo apt-get install gcc-11 g++-11
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 80 --slave /usr/bin/g++ g++ /usr/bin/g++-11
sudo find / -name libstdc++.so.6

可以看到系统中C++标准库libstdc++.so.6文件有多个,基本是每个独立性较高的程序都在自己的环境路径下有个libstdc++.so.6文件,所以这样是因为不同的libstdc++.so.6文件可能内部的GLIBCXX版本并不相同,因此一些不需要从源码编译的软件就会采用这种方式,把符合自身版本需要的libstdc++.so.6文件放在自身的库路径下,这样在调用的时候会优先调用自身带有的libstdc++.so.6文件而不是系统自带的。

我们可以看下系统libstdc++.so.6文件中支持的GLIBCXX版本:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

image

我们再看下anaconda环境下libstdc++.so.6文件中支持的GLIBCXX版本:

strings /home/devil/anaconda3/envs/impala/lib/libstdc++.so.6  | grep GLIBC

image

可以看到系统环境下 /usr/lib/x86_64-linux-gnu/libstdc++.so.6 文件含有GLIBCXX_3.4.30版本,而anaconda环境下/usr/lib/x86_64-linux-gnu/libstdc++.so.6文件含有的最高版本为GLIBCXX_3.4.29,因此有了前面的报错。

我们只需要将anaconda环境中libstdc++.so和libstdc++.so.6的链接地址指向系统路径中的地址即可:

ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/yourenvname/anaconda3/envs/pycode/bin/../lib/libstdc++.so.6

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/803908.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MAGICORE:基于多代理迭代的粗到细精炼框架,提升大语言模型推理质量

大语言模型(LLM)的推理能力可以通过测试时聚合策略来改进,即为每个问题生成多个样本并对它们进行聚合以找到更好的答案。这些方法往往会达到饱和点,超过这个点后额外的样本不会带来更多收益。精炼(refinement)提供了另一种选择,它使用模型生成的反馈不仅采样更多解决方案,还提高…

JVM工具-jstat

jstat(JVM Statistics Monitoring Tool):查看 JVM 的统计信息 jstat -gc 1输出字段:S0C、S1C:Survivor 0 和 Survivor 1 区域的当前容量(KB)S0U、S1U:Survivor 0 和 Survivor 1 区域的已使用空间(KB)EC:Eden 区域的当前容量(KB)EU:Eden 区域的已使用空间(KB)OC:Old 区…

如何基于云产品搭建一个高可用性的网站

如何基于云产品搭建一个高可用性的网站? 从传统机房服务器迁移至云计算平台,无论是可用性的提高,还是维护成本的降低,都是云计算带来的不可否认的优势。本案示例通过使用天翼云常用的三个云产品 ECS+ELB+RDS 来帮助用户快速地在云端搭 建具备高可用性的网站 wordpress。本文…

云灾备:云时代的数据安全

灾备(DR),在信息化的IT系统中,指的是容灾与备份结合,利用IT技术对企业数据、业务高可用进行保护,确保系统遭受灾难时数据安全、业务快速恢复。其作为“网络安全的最后一公里”,是网络安全保障体系的重要组成部分,也是网络与系统基础设施持续有效运行的基本保障。本文分…

MySQL8物理一键备份和恢复脚本分享

MySQL8物理一键备份和恢复脚本分享 原创 我科绝伦 小周的数据库进阶之路2024年09月23日 00:01 重庆热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者频率比较的内容,希望大家…

JVM工具-基础

Jvm内存 1.堆内存(Heap): 堆内存是Java中用于存放对象实例的内存区域,几乎所有的对象实例(包括数组)都在这里分配内存。 堆内存由垃圾回收器(Garbage Collector,GC)自动管理,程序员不需要手动释放。 堆内存可以细分为年轻代(Young Generation)、老年代(Old Genera…

学生订阅如何免费获得2台Azure ArchLinux虚拟机

微软Azure 的学生订阅可以免费开 Windows 和 Linux 虚拟机各一台,但是只有1G内存,在Windows Server里面跑不动程序。 下面记录了我将安装了Ubuntu和Windows Server的2台虚拟机都重装成ArchLinux的过程。 一、登录github学生账号,登入https://portal.azure.com/ 分别开通两台…

教你玩转MySQL8物理备份利器Xtrabackup

教你玩转MySQL8物理备份利器Xtrabackup 原创 我科绝伦 小周的数据库进阶之路2024年09月22日 00:00 重庆热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者频率比较的内容,希望…

双面打印机:激光打印、复印、扫描一体机LaserJet Pro MFP 4104dw

双面打印机: 型号:LaserJet Pro MFP 4104dw 功能:激光打印、复印、扫描一体机

【计算几何】凸包问题 (Convex Hull)

【计算几何】凸包问题 (Convex Hull) 引言 凸多边形 凸多边形是指所有内角大小都在\([0,π]\)范围内的简单多边形 凸包 在平面上能包含所有给定点的最小凸多边形叫做凸包。 其定义为:对于给定集合 X,所有包含 X 的凸集的交集 S 被称为 X 的 凸包。 实际上可以理解为用一个橡皮…

2535. 数组元素和与数字和的绝对差

给你一个正整数数组 nums 。 元素和 是 nums 中的所有元素相加求和。 数字和 是 nums 中每一个元素的每一数位(重复数位需多次求和)相加求和。 返回 元素和 与 数字和 的绝对差。 注意:两个整数 x 和 y 的绝对差定义为 |x - y| 。 示例 1: 输入:nums = [1,15,6,3] 输出:9…

[34](CSP 集训)CSP-S 联训模拟 1

A 几何 重复若干次 -> 不能重叠,因此考虑直接暴力 DP 设 \(f_{i,j,k}\) 表示主串匹配到第 \(i\) 位(将前 \(i\) 位分别归为两类),其中 \(x\) 在重复了若干次后,又匹配到了第 \(j\) 位,\(y\) 在重复了若干次后,又匹配到了第 \(k\) 位 转移非常好写,枚举 \(i\),尝试把…