Fork me on GitHub

ImportError: /lib64/libm.so.6: version `CXXAB_1.3.8.' not found (required by /usr/local/python37/lib/python3.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

问题背景

使用在很多项目中,由于需要用到tensorflow,scipy,sklearn等这些库,所以需要libstdc++库。

问题原因

这个问题的出现与写的代码无关,只与操作系统的libstdc++配置相关,由于Linux内核不支持,gcc版本太低。

解决方案

百度查询稀里糊涂的就解决了

解决过程

  1. 查看系统gcc版本
gcc --version
strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'
# Anaconda
strings ~/anaconda3/lib/libstdc++.so.6 | grep 'CXXABI'
  1. GCC 4.8.5 不支持 C++11,在升级gcc的时候使用yum是无效的,只能下载源码、编译。
  2. 下载和解压
cd /home
wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.2.0/gcc-7.2.0.tar.xz
tar -xvf gcc-7.2.0.tar.xz
cd gcc-7.2.0
  1. 编译前的准备工作
#安装C和C++的静态库
yum install -y glibc-static libstdc++-static
#安装旧版本的gcc、c++编译器
yum install gcc gcc-c++
  1. 安装gcc需要下载诸如gmp、mpfr、mpc等依赖文件,执行download_prerequisites将会自动完成这项工作,但是由于一些原因可能需要需要我们手动操作,步骤是:1 下载,2 解压, 3 建立软帘
MPFR=mpfr-3.1.4
GMP=gmp-6.1.0
MPC=mpc-1.0.3
 
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 
tar xjf $MPFR.tar.bz2 
ln -sf $MPFR mpfr 
 
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$GMP.tar.bz2 
tar xjf $GMP.tar.bz2  
ln -sf $GMP gmp 
 
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPC.tar.gz
tar xzf $MPC.tar.gz 
ln -sf $MPC mpc 
 
rm -f $MPFR.tar.bz2 $GMP.tar.bz2 $MPC.tar.gz 
  1. 编译安装gcc
#调用gcc源程序的configure(后面的参数选项可根据需要自行修改),用于配置gcc
./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
#编译gcc源程序
make  # 这一步需要花费 两个小时的时间

#安装gcc,可以用locate libstdc++.so 检查,如果更新了新的libstdc++.6,可以不执行这一步
make install
  1. 使用locate命令定位到libstdc++.so的位置,然后复制,建立软链
# 需要注意路径与权限问题
locate libstdc++.so  
rm -rf libstdc++.so.6
ln -sf libstdc++.so.6.0.24 libstdc++.so.6
Idconfig
posted @   马一特  阅读(1475)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示

目录