前言
提示:首先说明一下为什么写这篇文章:
产品经理有一个需求,在ubuntu20.4中使用gcc_9.4.0为客户提供一个sdk开发包,但是我现在只有ubuntu18.04_gcc_version 7.3.0(Ubuntu 7.3.0-16ubuntu3),就想如何能将gcc_7.3.0升级到gcc_9.4.0呢?
在离线环境下,在服务器上安装并更新gcc版本是一件特别复杂的,足足用时3个小时左右,特此记录方便记录和记忆
一、按照所需版本下载gcc源码
-
先下载我们需要安装的gcc版本,我这里安装的是 9.4.0版本的,下载地址为
http://ftp.gnu.org/gnu/gcc/
-
然后解压该压缩包到目录’/usr/local/ '中:
因为解压和编译出来的内容会有5G的硬盘需求,所以–directory=/usr/local/这个可以放在比较大的盘中,例如/home/xx/temp,不是固定的盘tar -zvxf gcc-8.1.0.tar.gz --directory=/usr/local/
二、下载依赖
-
查看安装需要依赖的包有那些:vi ./contrib/download_prerequisites
一般在第30行~33行列出了需要的包:
gmp-6.1.0.tar.bz2 ,mpfr-3.1.4.tar.bz2, mpc-1.0.3.tar.gz, isl-0.18.tar.bz2
(前三个版本可能是通用的,第四个需要注意一下对应的版本)。 -
对应下载地址
gmp下载链接:http://ftp.gnu.org/pub/gnu/gmp/
mpfr下载链接:https://mirrors.sjtug.sjtu.edu.cn/gnu/mpfr/
mpc下载链接:http://ftp.gnu.org/gnu/mpc/
isl 下载链接:http://www.mirrorservice.org/sites/sourceware.org/pub/gcc/infrastructure/
三、移植
-
将gmp、mpfr、mpc、isl安装放到cd /usr/local/gcc-9.4.0目录下并解压:
tar -xf gmp-6.1.0.tar.bz2 tar -xf mpfr-3.1.4.tar.bz2 tar -xf mpc-1.0.3.tar.gz tar -xf isl-0.18.1.tar.bz2
-
建立软连接
ln -sf gmp-6.1.0 gmp ln -sf mpfr-3.1.4 mpfr ln -sf mpc-1.0.3 mpc ln -sf isl-0.18 isl
-
最后一步:在 /usr/local/gcc-9.4.0目录下执行 (这一步的时间会很长(2-3h),大家可以去看会书,喝个咖啡啥的)
1 mkdir build 2 cd build 3 ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib 4 make 5 make install
-
最后会在/usr/local/中