Centos7 手动编译升级 gcc
下载安装包
原地址:http://ftp.gnu.org/gnu/gcc/
国内使用:https://mirrors.ustc.edu.cn/gnu/gcc/
1 | wget http://ftp.gnu.org/gnu/gcc/gcc-9.1.0/gcc-9.1.0.tar.gz |
到这里不要直接编译安装的,先把下面的依赖检查一下有没有装好。
检查和安装依赖项
检查依赖
因为我这里都已经装好了,所以显示成功1
2
3
4
5
6
7
8
9cd 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
5yum install gmp-devel
yum install mpfr-devel
yum install libmpc-devel
安装 isl:1
2
3
4
5
6
7
8
9
10
11
12wget 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
4yum groupinstall "Development Tools"
yum install glibc-static libstdc++-static
安装gcc:1
2
3
4
5
6
7
8
9
10
11cd 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 | rm -f /usr/bin/gcc |
更新libstdc++
1 | # 找到现有的版本 |
完成!