1.下载编译gcc相关的gmp、mpfr、mpc(根据自己需求下载对应版本,最好版本不要太低)
    传送门
    
     NJU Mirror
    
   
2.下载isl(版本不要太低)
    传送门
    
     http://isl.gforge.inria.fr/
    
   
3.按顺序安装
1)
cd gmp-6.2.0
./configure –prefix=/usr/local/ctenv/build(这是我安装的路径,可以自己设置)
make && make install
这步安装完可能会有个坑,使用命令 rpm -qa | grep gmp 看下是否如下图安装正确
    
   
如果没有gmp-devel-6.0.0-15.el7.x86_64这个,使用sudo yum install gmp-devel-6.0.0-15.el7.x86_64安装下(版本号和你下载的版本号对应就行)
2)
cd mpfr-4.1.0
./configure –prefix=/usr/local/ctenv/build –with-gmp=/usr/local/ctenv/build
make && make install
3)
cd mpc-1.2.0
./configure –prefix=/usr/local/ctenv/build –with-gmp=/usr/local/ctenv/build –with-mpfr=/usr/local/ctenv/build
make && make install
4)
cd isl-0.18
./configure –prefix=/usr/local/ctenv/build –with-gmp=/usr/local/ctenv/build
make && make install
5)
sudo yum install texinfo
6)
sudo vi /etc/ld.so.conf
加入下面这行(即刚安装的路径的lib路径)
/usr/local/ctenv/build/lib
7)
重新搜索当前系统上所有库文件搜索路径下的库并生成缓存
sudo ldconfig -v
8)
    
     这里是安装8.4步骤
    
   
cd gcc-8.4.0
./configure –prefix=/usr/local/ctenv/build –with-gmp=/usr/local/ctenv/build –with-mpfr=/usr/local/ctenv/build –with-mpc=/usr/local/ctenv/build –enable-checking=release –enable-languages=c,c++ –disable-multilib
make && make install
    
     这里是安装10.3步骤
    
   
    
     这里最好把1-2步下载的依赖都下成最高版本,但不能高于gcc-10.3的发布时间,不然不知道会有啥不兼容问题。
    
   
cd gcc-releases-gcc-10.3.0
./configure –prefix=/usr/local/ctenv/build –with-gmp=/usr/local/ctenv/build –with-mpfr=/usr/local/ctenv/build –with-mpc=/usr/local/ctenv/build –enable-checkinf=release –enable-languages=c,c++ –disable-multilib
make && make install
    遇到报错
    
     
      g++: 错误:gengtype-lex.c:没有那个文件或目录,
     
    
    
     
      解决:yum install flex
     
    
   
    
     然后
    
   
    
     make clean
    
   
./configure –prefix=/usr/local/ctenv/build –with-gmp=/usr/local/ctenv/build –with-mpfr=/usr/local/ctenv/build –with-mpc=/usr/local/ctenv/build –enable-checking=release –enable-languages=c,c++ –disable-multilib
    make && make install
   
9)
编译好之后可以看到安装目录下有个bin目录,把/usr/bin/gcc /usr/bin/g++删掉或者重命名下
创建软链接
ln -s /usr/local/ctenv/build/bin/gcc /usr/bin/gcc
ln -s /usr/local/ctenv/build/bin/g++ /usr/bin/g++
这样就把新的gcc和g++编译器连接好了,然后随便写个c11-17的代码测试下就OK了