Centos7 手动编译升级 gcc

下载安装包

原地址:http://ftp.gnu.org/gnu/gcc/
国内使用:https://mirrors.ustc.edu.cn/gnu/gcc/

1
2
3
wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz

tar -zcvf gcc-9.1.0.tar.gz

到这里不要直接编译安装的,先把下面的依赖检查一下有没有装好。

检查和安装依赖项

检查依赖

因为我这里都已经装好了,所以显示成功

1
2
3
4
5
6
7
8
9
cd gcc-9.1.0

./contrib/download_prerequisites

gmp-6.1.0.tar.bz2: 确定
mpfr-3.1.4.tar.bz2: 确定
mpc-1.0.3.tar.gz: 确定
isl-0.18.tar.bz2: 确定
All prerequisites downloaded successfully.

安装依赖

如果上面依赖缺少的,就需要安装:

1
2
3
4
5
yum install gmp-devel

yum install mpfr-devel

yum install libmpc-devel

安装 isl:

1
2
3
4
5
6
7
8
9
10
11
wget ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.18.tar.bz2

tar -jxvf isl-0.18.tar.bz2

cd isl-0.18

./configure

make

make install

安装完成,再检车一下:

1
./contrib/download_prerequisites

编译安装gcc

安装开发环境依赖:

1
2
3
yum groupinstall "Development Tools"

yum install glibc-static libstdc++-static

安装gcc:

1
2
3
4
5
6
7
8
9
10
11
cd gcc-9.1.0

mkdir gcc-build-9

cd gcc-build-9

../configure --prefix=/usr/local/gcc9 --enable-languages=c,c++,go --disable-multilib

make -j4 (-j4选项是make对多核处理器的优化,如果不成功请使用 make,相关优化选项可以移步至参考文献[2]。建议不要使用make -j来编译,虽然可以缩短编译时间,但极大可能会编译失败)

make install

替换旧的gcc

1
2
3
4
5
6
7
rm -f /usr/bin/gcc

rm -f /usr/bin/g++

ln -s /usr/local/gcc9/bin/gcc /usr/bin/gcc

ln -s /usr/local/gcc9/bin/g++ /usr/bin/g++

更新libstdc++

1
2
3
4
5
6
7
8
# 找到现有的版本
ls -lrt /usr/lib64/libstdc++.so.6

lrwxrwxrwx. 1 root root 19 8月 8 08:39 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.19

rm -f /usr/lib64/libstdc++.so.6

ln -s /usr/local/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6

完成!

本文由 千寻啊千寻创作。可自由转载、引用,但需署名作者且注明文章出处。


当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器