之前写过在linux下升级gcc 4.8至gcc 4.9的过程,现在gcc最新的版本是8,有些软件必须是gcc 7或者以上的版本才可以编译,比如clickhouse,gcc 7的安装过程和之前基本上一样,但是安装要独立安装,不要覆盖系统的gcc,因为大部分软件还是使用系统的gcc编译,这里gcc 7是分开使用,下面简单说一下安装的过程,
这里安装的是gcc 7.3,下载页面:http://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.3.0/,下载的包为:gcc-7.3.0.tar.xz
1). 安装gcc所需要的依赖
新版的gcc同样是依赖gmp,mpfr,mpc这3个包,版本要求不需要太高,编译出错时会给出提示,具体参考之前的文章安装即可,除了编译源码安装之外还可以使用下面的yum在线安装:
yum install gmp-devel yum install mpfr-devel yum install libmpc-devel
这样很快就搞定了.
2). 编译gcc 7.3
释放安装包:
xz -d gcc-7.3.0.tar.xz tar -xvf gcc-7.3.0.tar cd gcc-7.3.0/
编译源码:
./configure --prefix=/monchickey/gcc7 --disable-multilib # 注意指定到自己的目录,第二个参数是关闭32位指令,仅使用64位. make -j4 make install
然后又是漫长的等待,比gcc 4的编译还要慢,基本上需要1个多小时
3). 相关配置
编译完成之后执行 /monchickey/gcc7/bin/gcc -v 就可以看到版本号了,为了便于使用,可以执行下面命令建立软链接:
ln -s /monchickey/gcc7/bin/gcc /usr/bin/gcc-7 ln -s /monchickey/gcc7/bin/g++ /usr/bin/g++-7
这样就可以直接执行gcc-7或者是g++-7调用命令了,很多软件编译时一般不直接调用gcc或者g++命令,而是用CC和CXX代替,所以需要使用gcc 7进行编译时可以执行命令 export CC=gcc-7 CXX=g++-7 临时导入环境变量,这样本次编译就可以使用gcc 7了,下次进入shell时变量消失,不影响原有的环境,当然具体配置还需要参考软件的文档,不过很多软件编译时都用了这种方式.