linux下编译gcc-8.4.0并且升级

  • Post author:
  • Post category:linux


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了



版权声明:本文为life_NULL原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。