概述
一般来说,gcc、g++为linux系统基础组件,不会需要升级,但在安装某些新软件时,需要c++17支持,此时就需要升级gcc、g++。
g++包含在gcc库中,所以直接升级gcc即可。
gcc一旦升级,glibc库也需要升级。又因为glibc是更为基础的系统级库,所以万万不要直接替换操作系统自带版本,强烈建议新建临时目录,存放新的glibc库,以及gcc、g++工具集。
以下操作以gcc-10.3.0版本为例。
第一步:安装依赖库
gcc的编译安装依赖三个库:
GMP 4.2+
MPFR 3.1.0+
MPC 0.8.0+
需要去gnu网站下载上述三个源码包,依次安装。
首先安装gmp,以gmp-6.2.1为例:
./configure --prefix=/home/temp_usr
make
make install
然后安装mpfr,以mpfr-4.1.0为例:
./configure --prefix=/home/temp_usr
make
make install
最后安装mpc,以mpc-1.2.1为例:
./configure --prefix=/home/temp_usr --with-mpfr=/home/temp_usr
make
make install
第二步:编译安装gcc
以gcc-10.3.0为例,通过with参数指定gmp、mpfr、mpc库位置,然后开始编译安装gcc。
将上述生成的lib库的路径加到LD_LIBRARY_PATH环境变量中。
export LD_LIBRARY_PATH=/home/temp_usr/lib:$LD_LIBRARY_PATH
然后开始编译gcc。
./configure --prefix=/home/temp_usr --with-gmp=/home/temp_usr --with-mpfr=/home/temp_usr --with-mpc=/home/temp_usr --disable-multilib
make
make install
安装成功后,可以去temp_usr/bin目录查看生成的gcc、g++。之后想要使用新生成的gcc、g++,可以通过修改环境变量实现:
export PATH=/home/temp_usr/bin:$PATH
export LD_LIBRARY_PATH=/home/temp_usr/lib:$LD_LIBRARY_PATH
export修改只在一次session有效,退出终端后再次登录将恢复正常,不会影响系统自带gcc、g++。