背景:
现有的centos7 gcc的最高版本为4.8.5 项目需要升级到7.1.0以上 正常方式可以通过以下命令即可完成升级:
$ sudo yum install centos-release-scl $ sudo yum install devtoolset-7-gcc* $ scl enable devtoolset-7 bash
注意:第三条指令scl enable devtoolset-7
只是在当前会话中升级了gcc,如果想每次登录gcc自动升级,可以把scl enable devtoolset-7
放在 ~/.bash_profile
文件中。
但是最近centos官方镜像不能正常访问了,而阿里云等国内的yum云似乎也没有最新的gcc版本的镜像,于是需要手动编译的方式来安装gcc 以下以7.5.0版本为例,需要更高版本的话方法是一样的。
=============================================分割线, 下边是正式的步骤===========================================================
在这个地址下载安装包 https://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
上传到服务器 /usr/local目录下
执行命令解压
$ tar -zxvf ./gcc-7.5.0.tar.gz $ cd gcc-7.5.0
正常步骤是执行 ./contrib/download_prerequisites 来下载依赖 但是因为网络问题不能直接下载 所以需要手动去网站下载好上传到服务器 地址为:
执行命令 vim ./contrib/download_prerequisites
打开 ./contrib/download_prerequisites 可以看到到依赖的具体版本 共四个文件分别是
gmp='gmp-6.1.0.tar.bz2' mpfr='mpfr-3.1.4.tar.bz2' mpc='mpc-1.0.3.tar.gz' isl='isl-0.16.1.tar.bz2'
下载好后导入到 /usr/local/gcc-7.5.0目录下
安装 lbzip2(解压工具)
$ yum install -y lbzip2
执行命令
$ ./contrib/download_prerequisites
配置和编译
$ mkdir build $ cd build $ ../configure --prefix=/usr/local/gcc-7.5.0 --enable-languages=c,c++ --disable-multilib $ make -j$(nproc) $ sudo make install
更新 PATH
$ export PATH=/usr/local/gcc-7.5.0/bin:$PATH
将上述 export PATH
命令添加到你的 ~/.bashrc
或 ~/.bash_profile
文件中以使其永久生效。
通过以下命令检查安装的 GCC 版本:
$ gcc --version