有些项目会对gcc的版本有精确要求,这使得我们必须安装指定版本gcc
系统环境ubuntu 16.04
获取安装包
获取软件安装包,可以从官方的FTP上下载相应版本的压缩包,后缀 .tar.xz :
http://ftp.gnu.org/gnu/gcc/
tips:下载速度慢的话,可以右键迅雷下载,再拷贝到目标系统中
笔者需要安装7.2.0版本,资源顺手上传到了CSDN:
https://download.csdn.net/download/qq_40550914/14950995
解压并进入(请注意该文件夹的权限),这个文件夹锁在的位置即为安装路径,安装后请勿挪动:
tar -xf gcc-7.2.0.tar.xz
cd gcc-7.2.0
安装依赖
gcc软件包内提供了自动安装依赖的脚本,./contrib/download_prerequisites
笔者下载的时候奇慢无比,只得想办法单独下载后再导入(需要离线安装的朋友可以参考此项),网络条件好的朋友直接运行即可。
通过查看这个脚本源码可以得知主要是下载并安装四个软件
源码片段:
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'
base_url='ftp://gcc.gnu.org/pub/gcc/infrastructure/'
去ftp中下载指定的安装包(一起放到了上面提到的资源链接中)
通过./contrib/download_prerequisites --help
可以得知相关信息:
The following options are available:
--directory=DIR download and unpack packages into DIR instead of '.'
--force download again overwriting existing packages
--no-force do not download existing packages again (default)
--isl download ISL, needed for Graphite loop optimizations (default)
--graphite same as --isl
--no-isl don't download ISL
--no-graphite same as --no-isl
--verify verify package integrity after download (default)
--no-verify don't verify package integrity
--sha512 use SHA512 checksum to verify package integrity (default)
--md5 use MD5 checksum to verify package integrity
--help show this text and exit
--version show version information and exit
1.其中--directory=DIR
,为指定放置安装包的文件夹,笔者在gcc-7.2.0 文件中新建了一个DOWNload文件夹,并将下载的四个软件压缩包拷贝其中
2.默认是不会重新下载已存在的压缩包(网速很慢的时候,下载的文件可能有问题),如果尝试下载过,请把原先下载的删干净
3.可以配置是否校验,即--verify
与--no-verify
使用脚本安装依赖(请注意脚本文件的权限)
./contrib/download_prerequisites --directory=DOWNload --no-force
如果一切顺利、执行到脚本最后一步,会有提示信息
echo "All prerequisites downloaded successfully."
生成Makefile文件
./configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
编译(-j12为使用12线程进行编译)
make -j12
安装
make install
安装完成后可以重启并测试
gcc -v
参考资料:
https://www.cnblogs.com/dinghailong128/p/12153330.html