天天看点

Linux (离线)安装指定版本的GCC及依赖

有些项目会对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

继续阅读