解决 Linux 中 version `CXXABI_1.3.8‘ not found 报错

1. 问题现象

在 Linux 环境下运行某些程序或动态库时,可能会遇到如下报错:

bash 复制代码
./your_program: /lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./your_program)

该错误表示程序运行时依赖的 libstdc++.so.6 版本过低,缺少 CXXABI_1.3.8 符号版本。常见于使用较新 GCC 编译的程序,在较旧系统(如 CentOS 7、Ubuntu 16.04 等)上运行。

2. 原因分析

CXXABI_1.3.8 是 libstdc++ 动态库导出的符号版本之一,由 GCC 4.9 开始引入。若系统自带的 libstdc++.so.6 版本较旧,就无法提供该符号,导致动态链接失败。

可通过以下命令查看当前系统 libstdc++.so.6 支持的符号版本:

bash 复制代码
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI

如果输出中没有 CXXABI_1.3.8,则说明版本过低。

3. 解决方案

3.1 升级系统 GCC / libstdc++

最直接的方式是升级系统的 GCC 工具链,使 libstdc++.so.6 包含所需符号版本。

Ubuntu / Debian:

bash 复制代码
sudo apt update
sudo apt install gcc g++

CentOS / RHEL:

bash 复制代码
sudo yum install gcc gcc-c++

升级后重新检查符号版本:

bash 复制代码
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI

3.2 使用高版本 libstdc++.so.6 并指定 LD_LIBRARY_PATH

如果无法升级系统库,可以从高版本 GCC 安装目录中拷贝 libstdc++.so.6,并通过 LD_LIBRARY_PATH 指定加载路径。

bash 复制代码
export LD_LIBRARY_PATH=/path/to/high/version/libstdc++:$LD_LIBRARY_PATH

例如,使用 Anaconda 自带的较新 libstdc++:

bash 复制代码
export LD_LIBRARY_PATH=/opt/anaconda3/lib:$LD_LIBRARY_PATH

3.3 使用 conda 环境

通过 conda 创建独立环境,安装较新的 GCC 或 libstdc++-ng:

bash 复制代码
conda create -n myenv python=3.8
conda activate myenv
conda install libstdcxx-ng

然后在 conda 环境中运行程序,即可使用较新的 libstdc++.so.6。

3.4 静态链接 libstdc++

如果程序源码可重新编译,可考虑静态链接 libstdc++,避免运行时依赖系统动态库:

bash 复制代码
g++ -static-libstdc++ -static-libgcc your_program.cpp -o your_program

4. 验证

运行以下命令确认问题已解决:

bash 复制代码
ldd your_program | grep libstdc++

同时再次运行程序,确认不再出现 CXXABI_1.3.8 not found 报错。

5. 总结

CXXABI_1.3.8 not found 的本质是系统 libstdc++ 版本过低。优先升级系统 GCC;无法升级时,可通过 LD_LIBRARY_PATH 指定高版本库、使用 conda 环境或静态链接等方式解决。

相关推荐
爱喝水的鱼丶12 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
木子欢儿12 小时前
openconnect Linux客户端安装 以及开机自启和登录
linux·运维·服务器
..Dauntless..13 小时前
【Linux】文件系统(一)
linux·运维·服务器
天空属于哈夫克313 小时前
企业微信API二次开发 赋能私域运营自动化
运维·自动化·企业微信
天远API13 小时前
零信任架构实战:基于天远运营商二要素V即时版构建自动化分时租赁出行会员身份一致性审核网关
运维·人工智能·架构·自动化
九零HTTP13 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
SHENGWEI胜为14 小时前
交换机端口显示正常,终端却获取不到 IP 地址?从 DHCP 流程定位故障
服务器·网络·测试工具·缓存·通信工程
极光通讯14 小时前
液冷服务器对内存和SSD的适配要求:高密度部署下的散热与信号完整性
运维·服务器
2501_9377671615 小时前
面向设计 / 研发部门:终端文件统一归档 + 服务器定时备份实践
运维·安全
GeW15 小时前
新质生产力路线图:从Linux到数据库,企业落地要点都在这
linux