Ubuntu16.04 系统默认gcc 和g++版本为5.4.0,由于安装软件需要,gcc版本需要7.4 以上,因此安装gcc 7.5版本。参考链接:Ubuntu16.04下安装gcc-7.5.0教程。
一、安装包准备
本地gcc7.5.0版本所需安装包如下:
gcc-7.5.0.tar.gz
gmp-6.1.0.tar.bz2
mpc-1.0.3.tar.gz
mpfr-3.1.4.tar.bz2
isl-0.16.1.tar.bz2
这几个安装包在国外网站下载速度很慢,用中国科学技术大学镜像下载地址速度很快的:
https://mirrors.ustc.edu.cn/gnu/
用如下命令分别下载:
wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz
wget https://mirrors.ustc.edu.cn/gnu/gmp/gmp-6.1.0.tar.bz2
wget https://mirrors.ustc.edu.cn/gnu/mpc/mpc-1.0.3.tar.gz
wget https://mirrors.ustc.edu.cn/gnu/mpfr/mpfr-3.1.4.tar.bz2
isl-0.16.1.tar.bz2中国科学技术大学镜像网站没找到,连接到雅典国立技术大学下载:
wget http://ftp.ntua.gr/mirror/gnu/gcc/infrastructure/isl-0.16.1.tar.bz2
二、安装
具体安装命令如下:
#将所有安装包上传到Linux环境下,解压缩处理
tar -xvf gcc-7.5.0.tar.gz
cd gcc-7.5.0
分别把:gmp-6.1.0.tar.bz2、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.bz2、isl-0.16.1.tar.bz2上传到gcc7.5.0解压目录。
./contrib/download_prerequisites
cd …
#建立编译输出目录
mkdir gcc-build-7.5.0
#进入下面目录,执行命令,生成Makefile文件
cd gcc-build-7.5.0
#configure的最后一个参数是关闭32位库,只编译64位库,我的电脑是64位的。如果想要同时编译32位和64位,可以使用-enable-multilib
…/gcc-7.5.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
#执行命令进行编译,此处利用4个job,需编译时约40分钟,此值不宜设置过高(此处编译后报错,发现权限不够,修改权限为sudo,由于本人电脑可变为j8,因此指令修改为)
sudo make -j8
安装
sudo make install
安装成功,界面如下所示:
注意看安装路径,因为直接看其他人教程,发现新安装的gcc版本,实际上应该根据这个安装路径去修改相应指令。
安装完成后,系统现在带有gcc5.4版本和gcc7.5 版本。
根据安装去搜索gcc7的安装文件,如下图所示。图中可以看到并没有gcc-7文件,很多教程都写的是gcc-7,实际上应该根据查到的文件名称去修改相应指令。
查看是否安装成功,由于系统当前默认仍为gcc5.4版本,因此,直接使用指令查看gcc7版本:
/usr/local/bin/gcc --version
/usr/local/bin/g++ --version
使用指令:
ll /usr/bin/gcc*
ll /usr/bin/g++*
结果为:使用指令查看gcc7
ll /usr/local/bin/gcc*
ll /usr/local/bin/g++*
结果为:
gcc7.5 安装成功后,使用update-alternatives
指令进行多版本管理。此处参照链接:ubuntu下多个gcc g++的安装和管理切换等
update-alternatives是ubuntu系统中专门维护系统命令链接符的工具,通过它可以很方便的设置系统默认使用哪个命令、哪个软件版本。
其中60 ,70是优先级数值可以自己设定,–slave能保证gcc和g++保持相同的版本,数字越大,优先级越高,设置系统自带5.4优先级版本最高。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 70 --slave /usr/bin/g++ g++ /usr/bin/g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/local/bin/gcc 60 --slave /usr/bin/g++ g++ /usr/local/bin/g++
使用如下命令选择gcc的版本:
sudo update-alternatives --config gcc
根据需要输入slection列出的数字。
至此完成。