首页 > 系统相关 >【Python BUG】ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_X.X.X‘ not found

【Python BUG】ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_X.X.X‘ not found

时间:2024-04-02 09:59:55浏览次数:23  
标签:libstd x86 lib gnu c++ 64 linux

报错

ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version
`CXXABI_1.3.9‘ not found

背景

开发的一个python预测程序(算法分析+应用服务),在原本的linux服务器下配置了开发环境,打包后在另一台凝思服务器解压,发现报错。

应该是linux系统之间存在差异,动态库缺失或者版本不对

解决方案

参考:

https://blog.csdn.net/bitcarmanlee/article/details/90242598

确认是否有对应版本:

cd /usr/lib/x86_64-linux-gnu
sudo strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI

确认确实缺失CXXABI_对应版本后

查找最新动态库

sudo find / -name "libstdc++.so.6*"

出现很多结果如下

/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
...
/home/leilei/anaconda2/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/home/leilei/anaconda2/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.25
...

选择最新的(最下面的)进行复制(复制到/usr/lib/x86_64-linux-gnu):

cp /home/leilei/anaconda2/pkgs/libstdcxx-ng-8.2.0-hdf63c60_1/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.25 /usr/lib/x86_64-linux-gnu/ 

先cd 进入/usr/lib/x86_64-linux-gnu

cd /usr/lib/x86_64-linux-gnu

删除原来的软连接

sudo rm -rf libstdc++.so.6

基于最新的动态库生成软连接

sudo ln -s libstdc++.so.6.0.25 libstdc++.so.6

查看现在的CXXABI

sudo strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep 'CXXABI'

总结

基本流程是:
检查缺陷——查询最新动态库并复制进软连接目录——删除原始软连接——基于最新动态库生成新的软链接——CXXABI随之安装到符合要求的版本

表象已经洞悉,但是其内在原理并不了解,但已经结局了报错,满足了开发需求。

标签:libstd,x86,lib,gnu,c++,64,linux
From: https://blog.csdn.net/qq_43128256/article/details/137257243

相关文章

  • "sideEffects": [ "dist/*", "esm/**/style/*", "lib/**/
    这段配置出现在一个软件包的package.json文件中,具体是"sideEffects"字段。这个字段用于告知打包工具(如Webpack、Rollup等)哪些模块或文件可能存在副作用(sideeffects),以便在进行TreeShaking(摇树优化)时做出正确决策。TreeShaking是一种优化技术,旨在在打包过程中去除那些在......
  • liblzma/xz被植入后门,过程堪比谍战片!
    事件概述xz是一种几乎存在于所有Linux发行版中的通用数据压缩格式。从5.6.0版本开始,在xz的上游tarball包中被发现了恶意代码,通过一系列复杂的混淆手段,liblzma的构建过程从伪装成测试文件的源代码中提取出预构建的目标文件,然后用它来修改liblzma代码中的特定函数。这导致生成了一......
  • 【QT+QGIS跨平台编译】054:【exiv2lib+Qt跨平台编译】(一套代码、一套框架,跨平台编译)
    点击查看专栏目录文章目录一、exiv2lib介绍二、文件下载三、文件分析四、pro文件五、编译实践一、exiv2lib介绍  exiv2lib是一个用于处理图像元数据的开源C++库。它可用于读取、编辑和写入图像文件中的Exif元数据(ExchangeableImageFileFormat,可交......
  • 微服务集成Spring Cloud Alibaba Seata(一)Seata服务搭建
    1、Seata介绍Seata是阿里开源的一款分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。数据库事务我们都知道,事务都是遵循ACID原则。而通过使用Seata可以实现在两个服务模块通过RPC调用时触发事务,如果有异常会实现业务数据回滚,保证数据的一致性。官网地址:https://......
  • Matplotlib代码实操学习
    一.前情提要1.本文是代码结合知识点,注释即为知识点2.主要详细讲解折线图、散点图和柱状图3.若想深入学习,建议阅读【python教程】数据分析——numpy、pandas、matplotlib_哔哩哔哩_bilibili二.学习①折线图#Ⅰ引入frommatplotlibimportpyplotaspltimportrandomi......
  • MySQL数据库报错:The server quit without updating PID file (/var/lib/mysql/your-h
    在MySQL安装或初次配置过程中,遭遇报错是很常见的一件事,它可能会使你的安装进程暂时停滞。本文将深入探讨一个具体的安装错误,涵盖错误信息、可能的原因,以及详细的解决方案,旨在帮助你高效地解决这一挑战。错误描述安装MySQL过程中,你可能会碰到以下错误信息:Theserverquit......
  • 使用OpenEuler x86_64 实现Bouncycastle SM4加解密功能
    使用OpenEulerx86_64实现BouncycastleSM4加解密功能一、安装运行环境安装java和mavensudoyuminstalljava-17-openjdksudoyuminstallmaven安装完成后,你就可以在OpenEuler上使用Maven来管理Java项目了。二、创建项目工程在项目根目录下创建pom.xml文......
  • tslib 这个包做啥用的
    tslib是一个专门用于TypeScript项目的辅助工具库,它的主要目的是帮助TypeScript编译后的JavaScript代码变得更精简和高效。当使用TypeScript编写代码并将其编译为JavaScript时,编译器会为一些TypeScript特性生成额外的辅助代码,如类型断言、装饰器、枚举、泛型等。这......
  • 使用OpenEuler x86_64 实现Bouncycastle SM3哈希功能
    使用OpenEulerx86_64实现BouncycastleSM3哈希功能一、安装运行环境安装java和mavensudoyuminstalljava-17-openjdksudoyuminstallmaven安装完成后,你就可以在OpenEuler上使用Maven来管理Java项目了。二、创建项目工程在项目根目录下创建pom.xml文件......
  • 数据剑舞,图表如潮!Matplotlib傲视数据可视化江湖
    在代码的世界中,隐藏着一座神秘而神奇的画图殿堂,它就是Matplotlib。这座殿堂矗立在数据的海洋中,每一行代码都是一笔神奇的咒语,让数据在图像之间舞动,展现出无限可能。Matplotlib的大门上镶嵌着闪烁的彩虹宝石,每当有开发者走近,便散发出五彩斑斓的光芒,仿佛在诉说着这里的神秘。而在宫......