由于linux系统自带的GCC版本过低,无法编译具有C++11以上的代码,因此需要自己手动升级并安装GCC7.3.0以满足新版本C++的编译需求。
GCC源码国内镜像网站(中国科学技术大学镜像):
https://mirrors.ustc.edu.cn/gnu/gcc/](https://mirrors.ustc.edu.cn/gnu/gcc/
1:下载GCC-7.3.0源码
wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
2:解压&进入目录
tar -xf gcc-7.3.0.tar.gz cd gcc-7.3.0
3:下载GCC依赖的第三方开源库
./contrib/download_prerequisites
直接运行download_prerequisites脚本下载速度极其的慢,如果有条件用户可以使用科学上网自行加速下载。
如果不具备科学上网的条件:用户可以直接登录到GNU官方FTP服务器(https://gcc.gnu.org/pub/gcc/infrastructure/)自行下载所依赖的包:根据脚本显示GCC-7.3.0依赖项如下:
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'
将对应的依赖项下载完成后放到gcc-7.3.0目录下,再次执行"./contrib/download_prerequisites",验证文件的是否完整,并完成解压。
4编译源码
sudo make -j 64
使用make命令编译GCC源码。
参数说明:
-j 表示 编译时可以使用多个核心并行编译源码,本例中64表示同时执行编译的项目数,此数量根据用户实际的核心数进行选择。
linux下核心数,可以通过cat /proc/cpuinfo 进行查看。
特别提示:在其他自定义的make项目中,文件生成的先后会存在依赖关系,使用-j参数时,需要明确不同文件的先后依赖关系后,在使用 -j 参数进行多核并行编译。
GCC源码编译时间较长,建议用户开始编译后,继续其他工作。
5 GCC安装
sudo make install
使用该命令完成GCC-7.3.0的安装。
安装完成后,重启SSH或用户终端,使用gcc --version 查看GCC版本是否已经更新到7.3.0
如果验证不成功,需要手动将GCC的bin文件添加到PATH环境变量当中。
export PATH=$PATH:/usr/local/bin
#创建gcc可执行文件的软连接
sudo ln -s /usr/local/bin/gcc /usr/bin/gcc