/lib64/libstdc++.so.6: version `CXXABI_1.3.8′ not found (required by /usr/local/python3.6/lib/python3.6/site-packages/paddle/fluid/core_avx.so)

gcc版本过低升级版本
注意先升级gcc再安装python

Linux升级gcc到最新版本gcc-11.2.0
当前环境
更新方法

  1. 下载最新的源码包并解压缩
    2.下载依赖及配置文件
  2. 配置
  3. 编译
  4. 安装
  5. 验证gcc版本
  6. 删除旧版本
  7. 配置新版本全局可用
  8. 更新动态库
    当前环境
    系统:centos 7 x86_64
    gcc版本:gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
    make版本:GNU Make 4.3
    1
    2
    3
    更新方法
  9. 下载最新的源码包并解压缩
    gcc-11.2.0.tar.gz
    可在该地址寻找自己需要的版本http://ftp.gnu.org/gnu/gcc/

wget http://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.gz
tar -zxvf gcc-11.2.0.tar.gz
1
2
2.下载依赖及配置文件
yum -y install bzip2 #已安装可以跳过这一步

cd gcc-11.2.0
./contrib/download_prerequisites
1
2
3
4

  1. 配置
    mkdir build
    cd build/
    ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib

–enable-languages表示你要让你的gcc支持那些语言,

–disable-multilib不生成编译为其他平台可执行代码的交叉编译器。

–disable-checking生成的编译器在编译过程中不做额外检查,

也可以使用–enable-checking=xxx来增加一些检查

1
2
3
4
5
6
7
8

  1. 编译
    make

    这一步需要时间非常久 可以使用 make -j 4 让make最多运行四个编译命令同时运行,加快编译速度(建议不要超过CPU核心数量的2倍)

    1
    2

  2. 安装
    make install
    1
  3. 验证gcc版本
    gcc -v

Using built-in specs.
COLLECT_GCC=/usr/local/bin/gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-pc-linux-gnu/11.2.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
Thread model: posix
Supported LTO compression algorithms: zlib
gcc version 11.2.0 (GCC)

验证:gcc -v;或者g++ -v,如果显示的gcc版本仍是以前的版本,就需要重启系统;
或者可以查看gcc的安装位置:which gcc;
然后在查看版本 /usr/local/bin/gcc -v
确定以及配置成功后可以将原先的版本删除
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

  1. 删除旧版本
    yum -y remove gcc g++
    1
  2. 配置新版本全局可用
    ln -s /usr/local/bin/gcc /usr/bin/gcc
    1
  3. 更新动态库

    查看当前的动态库

    strings /usr/lib64/libstdc++.so.6 | grep CXXABI
    rm -f /usr/lib64/libstdc++.so.6
    ln -s /usr/local/lib64/libstdc++.so.6.0.29 /usr/lib64/libstdc++.so.6

    查看更新后的动态库

    strings /usr/lib64/libstdc++.so.6 | grep CXXABI

    安装后的动态库会位于/usr/local/lib64目录下,

    其他版本在该目录下寻找对应的动态库libstdc++.so.6.X.XX

重新编译gcc
strings /usr/lib64/libstdc++.so.6 | grep CXXABI
yum install gmp-devel mpfr-devel libmpc-devel -y
cd download
wget ftp://ftp.gnu.org/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.xz
xz -d gcc-9.3.0.tar.xz
tar -xf gcc-9.3.0.tar
cd gcc-9.3.0
./configure --disable-multilib --enable-languages=c,c++ --prefix=/usr/local/gcc
make -j8   # -j8  四个进程
make -j install

vim /etc/profile  source /etc/profile
export PATH=$HOME/local/bin:$PATH
export LD_LIBRARY_PATH=$HOME/local/lib64

cd /root/local/lib64   
ll libstdc++.so*  # 查看新编译的gcc

cd /usr/lib64/
ll libstdc++.so*
mv libstdc++.so.6 libstdc++.so.6.bak   # 删除连接
ln -s /root/local/lib64/libstdc++.so.6.0.27 libstdc++.so.6   # 建立新的连接

gcc升级

yum install centos-release-scl

yum install devtoolset-9-gcc*

scl enable devtoolset-9 bash

vi /etc/profile
source /opt/rh/devtoolset-9/enable

转载请注明出处:

转载自http://lxfamn.cn/blog

未经允许不得转载:lxfamn » /lib64/libstdc++.so.6: version `CXXABI_1.3.8′ not found (required by /usr/local/python3.6/lib/python3.6/site-packages/paddle/fluid/core_avx.so)

赞 (0) 打赏

置顶推荐

评论 0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏