概述

一般来说,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++。 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐