CXXABI_1.3.8 not found

文章首发于 CXXABI_1.3.8 not found 。

当在 CentOS 7 安装 sqlite3 时会遇到 /lib64/libstdc++.so.6: version CXXABI_1.3.8 not found 报错的问题,下面罗列出我的解决流程:

查看 libstdc++.so.6 包含的 CXXABI 版本

# 查看本地 CXXABI 所有可用版本
strings /usr/lib64/libstdc++.so.6 | grep CXXABI# 输出如下,未发现 1.3.8 版本
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1# 找寻本机其他新版本库
find / -name libstdc++.so.* # 输出如下
/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.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo
/usr/lib/libstdc++.so.6.0.19
/usr/lib/libstdc++.so.6# 如果发现有 libstdc++.so.6 高版本,把这个库软连接到 /usr/lib64/ 即可
cd /usr/lib64
mv libstdc++.so.6 libstdc++.so.6.bake   # 备份老库
ln -s /usr/local/gcc-9.3.0/lib64/libstdc++.so.6 ./# 查看本地 CXXABI 所有可用版本
strings /usr/lib64/libstdc++.so.6 | grep CXXABI

如果为发现 libstdc++.so.6 高版本,则接着往下。

CentOS7 编译升级GCC至9.3.0

下载GCC9.3.0源码并解压

由于官网下载速度慢,使用清华大学的镜像站进行下载,代码如下:

wget -c /opt/tmp/ https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz# 考虑到安装失败的可能性,创建一个临时文件夹来安装GCC
sudo mkdir /opt/tmp
cd /opt/tmp# 解压安装包到临时文件夹里
sudo tar -zxvf /home/paul/Downloads/gcc-9.3.0.tar.gz 

下载依赖文件

cd gcc-9.3.0/# 下载gmp mpfr mpc等供编译需求的依赖项
./contrib/download_prerequisites    

执行命令会出现如下的错误,可能原因是从清华大学镜像下的安装包有过改动,不能通过sha512验证

gmp-6.1.0.tar.bz2: FAILED

sha512sum: WARNING: 1 computed checksum did NOT match

error: Cannot verify integrity of possibly corrupted file gmp-6.1.0.tar.bz2

查看download_prerequisites源码后, 在gcc-9.3.0目录下输入以下命令:

# 删除上一命令安装失败产生的gmp压缩包和目录
rm gmp-6.1.0.tar.bz2 
rm gmp-6.1.0# 加--noverify选项禁止边下边验证
./contrib/download_prerequisites --no-verify

创建预编译目录

mkdir  build  &&  cd build

设置编译选项并编译

../configure --prefix=/usr/local/gcc-9.3.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib# –-enable-languages表示你要让你的gcc支持哪些编程语言;
# -–disable-multilib表示编译器不编译成其他平台的可执行代码;
# -–disable-checking表示生成的编译器在编译过程中不做额外检查;
# –-enable-checking=xxx 表示编译过程中增加XXX检查;
# –prefix=/usr/local/gcc-9.3.0 指定安装路径;
# –enable-bootstrap 表示用第一次编译生成的程序进行第二次编译,然后用再次生成的程序进行第三次编译,并且检查比较第二次和第三次结果的正确性,也就是进行冗余的编译检查工作。 非交叉编译环境下,默认已经将该值设为 enable,可以不用显示指定;交叉编译环境下,需要显示将其值设为 disable。

这个过程会比较长久,我的编译了 3个 多小时。

安装

# 编译生成makefile文件
make# 安装GCC
sudo make install

安装后的设置

# 设置环境变量
touch /etc/profile.d/gcc.sh
sudo chmod 777 /etc/profile.d/gcc.sh 
sudo echo -e '\nexport PATH=/usr/local/gcc-9.3.0/bin:$PATH\n' >> /etc/profile.d/gcc.sh && source /etc/profile.d/gcc.sh# 设置头文件
sudo ln -sv /usr/local/gcc/include/ /usr/include/gcc# 设置库文件
touch /etc/ld.so.conf.d/gcc.conf
sudo chmod 777 /etc/ld.so.conf.d/gcc.conf 
sudo echo -e "/usr/local/gcc/lib64" >> /etc/ld.so.conf.d/gcc.conf# 加载动态连接库
sudo ldconfig -v
ldconfig -p |grep gcc

测试版本号

# 测试
gcc -v

敲入命令后,终端显示如下文字,说明已成功安装 GCC9.3.0 。

Using built-in specs.

COLLECT_GCC=gcc

COLLECT_LTO_WRAPPER=/usr/local/gcc-9.3.0/libexec/gcc/x86_64-pc-linux-gnu/9.3.0/lto-wrapper

Target: x86_64-pc-linux-gnu

Configured with: …/configure --prefix=/usr/local/gcc-9.3.0 --enable-bootstrap --enable-checking=release --enable-languages=c,c++ --disable-multilib

Thread model: posix

gcc version 9.3.0 (GCC)

接下来按照 查看 libstdc++.so.6 包含的 CXXABI 版本 执行:

# 查看本地 CXXABI 所有可用版本
strings /usr/lib64/libstdc++.so.6 | grep CXXABI# 输出如下,未发现 1.3.8 版本
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1# 找寻本机其他新版本库
find / -name libstdc++.so.* # 输出如下
/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.py
/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.19-gdb.pyo
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyc
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.py
/usr/share/gdb/auto-load/usr/lib/libstdc++.so.6.0.19-gdb.pyo
/usr/lib/libstdc++.so.6.0.19
/usr/lib/libstdc++.so.6# 如果发现有 libstdc++.so.6 高版本,把这个库软连接到 /usr/lib64/ 即可
cd /usr/lib64
mv libstdc++.so.6 libstdc++.so.6.bake   # 备份老库
ln -s /usr/local/gcc-9.3.0/lib64/libstdc++.so.6 ./# 查看本地 CXXABI 所有可用版本
strings /usr/lib64/libstdc++.so.6 | grep CXXABI

参考:

  1. /lib64/libstdc++.so.6: version `CXXABI_1.3.8‘ not found 解决指南
  2. CentOS7 编译升级GCC至9.3.0

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

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

相关文章

Leetcode刷题——二分查找(day1)

题目1 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 示例 1: 输入: nums [-1,0,3,5,9,12], target 9 输出: 4 解释…

PyTorch预训练和微调:以VGG16为例

文章目录 预训练和微调代码测试结果参考来源 预训练和微调代码 数据集:CIFAR10 CIFAR-10数据集由10类32x32的彩色图片组成,一共包含60000张图片,每一类包含6000图片。其中50000张图片作为训练集,10000张图片作为测试集。数据集介…

SolidUI AI生成可视化,0.1.0版本模块划分以及源码讲解

1.背景 随着文本生成图像的语言模型兴起,SolidUI想帮人们快速构建可视化工具,可视化内容包括2D,3D,3D场景,从而快速构三维数据演示场景。SolidUI 是一个创新的项目,旨在将自然语言处理(NLP)与计算机图形学相…

【微信小程序-uniapp】CustomDialog 居中弹窗组件

1. 效果图 2. 组件完整代码 <template><uni-popup :ref="ref" type="center" @change

Ubuntu下配置Redis哨兵集群

目录 准备实例和配置 启动哨兵集群 测试配置 搭建一个三节点形成的Sentinel集群&#xff0c;来监管Redis主从集群。 三个sentinel哨兵实例信息如下&#xff1a; 节点IPPORTs1192.168.22.13527001s2192.168.22.13527002s3192.168.22.13527003 准备实例和配置 要在同一台虚…

Google Bard 拓展与归纳

导言&#xff1a; Bard&#xff08;谷歌人工智能语言模型“https://bard.google.com”&#xff09;在不断演进和改进中&#xff0c;为用户提供了更丰富、便捷和个性化的服务体验。本文集将深入探索 Bard 在不同方面的关键更新&#xff0c;包括语言支持扩大、图像呈现、交互方式…

组合式API

文章目录 前言了解组合式API简单类型 ref封装对象类型 user.name子组件数组类型 reactive封装 组合式 API 基础练习基础练习优化 前言 Vue 3 的组合式 API&#xff08;Composition API&#xff09;是一组函数和语法糖&#xff0c;用于更灵活和可组合地组织 Vue 组件的代码逻辑…

leetcode 538. 把二叉搜索树转换为累加树

2023.7.16 这道题利用中序遍历&#xff08;右中左&#xff09;的操作不断修改节点的值即刻&#xff0c;直接看代码&#xff1a; class Solution { public:TreeNode* convertBST(TreeNode* root) {stack<TreeNode*> stk;//前面的累加值int pre_value 0;TreeNode* cur r…

review回文子串

给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 class Solution {List<List<String>> lists new ArrayList<>(); // 用于存储所有可能…

【数据挖掘】时间序列教程【二】

2.4 示例:颗粒物浓度 在本章中,我们将使用美国环境保护署的一些空气污染数据作为运行样本。该数据集由 2 年和 5 年空气动力学直径小于或等于 3.2017 \(mu\)g/m\(^2018\) 的颗粒物组成。 我们将特别关注来自两个特定监视器的数据,一个在加利福尼亚州弗雷斯诺,另一个在密…

图片文字对齐 图片文字居中对齐

方法一: 用 vertical-align: middle; <view class="container"><view class="search"><image src="../../images/icon/search.png" alt="" /><text class="tex">搜索</text></view>&…

webSocket前端+webSocket封装

一、websocket基础 /*** 初始化websocket连接*/ function initWebSocket() {let uId 1;var websocket null;if(WebSocket in window) {websocket new WebSocket("ws://localhost:8009/webSocket"uId );//请求的地址} else {alert("该浏览器不支持websocket&…

透彻!127.0.0.1和0.0.0.0之间的区别总算听明白了!

参考视频&#xff1a;透彻&#xff01;127.0.0.1和0.0.0.0之间的区别总算听明白了&#xff01;_哔哩哔哩_bilibili 0.0.0.0不是一个ip地址&#xff0c;而是一个通配符&#xff0c;通配当前主机上面所有的网卡&#xff08;包括虚拟网卡&#xff09;。

深度学习环境安装|PyCharm,Anaconda,PyTorch,CUDA,cuDNN等

本文参考了许多优秀博主的博客&#xff0c;大部分安装步骤可在其他博客中找到&#xff0c;鉴于我本人第一次安装后&#xff0c;时隔半年&#xff0c;我忘记了当时安装的许多细节和版本信息&#xff0c;所以再一次报错时&#xff0c;重装花费了大量时间。因此&#xff0c;我觉得…

全志F1C200S嵌入式驱动开发(解决reboot失败的问题)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 上一次做了rootfs之后,就马不停蹄地测试了几个常用的命令。比如cd、ls、date、time、reboot这样的命令。其他命令测试结果都还好,就是这个reboot命令当死就没有生效,现场的打印结…

初级 - 若依框架 - Java Spring/Spring Boot 项目理解记录

1、Autowired 自动装配的理解 一般情况下&#xff0c;我们创建对象都是 类名 类引用名 new 类名() 但是如果是不想要 等于号后面的对象实例化操作&#xff0c;那么可以使用 Autowired 注解&#xff0c;当然这是在使用 Spring 时&#xff0c;才能这样&#xff0c;不然一般情…

Profibus DP主站转Modbus TCP网关profibus从站地址范围

远创智控YC-DPM-TCP网关。这款产品在Profibus总线侧实现了主站功能&#xff0c;在以太网侧实现了ModbusTcp服务器功能&#xff0c;为我们的工业自动化网络带来了全新的可能。 远创智控YC-DPM-TCP网关是如何实现这些功能的呢&#xff1f;首先&#xff0c;让我们来看看它的Profib…

【新版系统架构】第十七章-通信系统架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 第一章-绪论第二章-计算机系统基础知识&#xff08;一&#xff09;第二章-计算机系统基础知识&#xff08;二&#xff09;第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

Redis---缓存双写一致性

目录 一、什么是缓存双写一致性呢&#xff1f; 1.1 双检加锁机制 二、数据库和缓存一致性的更新策略 2.1、先更新数据库&#xff0c;后更新缓存 2.2 、先更新缓存&#xff0c;后更新数据库 2.3、先删除缓存&#xff0c;在更新数据库 延时双删的策略&#xff1a; 2.4.先更新数…

Matplotlib---3D图

1. 3D图 # 3D引擎 from mpl_toolkits.mplot3d.axes3d import Axes3D fig plt.figure(figsize(8, 5)) x np.linspace(0, 100, 400) y np.sin(x) z np.cos(x)# 三维折线图 axes Axes3D(fig, auto_add_to_figureFalse) fig.add_axes(axes) axes.plot(x,y,z) plt.savefi…