gcc版本过低升级版本
注意先升级gcc再安装python
Linux升级gcc到最新版本gcc-11.2.0
当前环境
更新方法
- 下载最新的源码包并解压缩
2.下载依赖及配置文件 - 配置
- 编译
- 安装
- 验证gcc版本
- 删除旧版本
- 配置新版本全局可用
- 更新动态库
当前环境
系统: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
更新方法 - 下载最新的源码包并解压缩
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
- 配置
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
- 编译
make这一步需要时间非常久 可以使用 make -j 4 让make最多运行四个编译命令同时运行,加快编译速度(建议不要超过CPU核心数量的2倍)
1
2 - 安装
make install
1 - 验证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
- 删除旧版本
yum -y remove gcc g++
1 - 配置新版本全局可用
ln -s /usr/local/bin/gcc /usr/bin/gcc
1 - 更新动态库
查看当前的动态库
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
转载请注明出处:
未经允许不得转载: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)