所需依赖资源包详情如下:
gcc-7.2.0.tar.xz
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.2.0_download_prerequisites_安装gcc依赖
安装过程中./contrib/download_prerequisites这一步大部分国内用户都会失败,由于网络等问题,所需的资源包下载不了,下面的命令本质上来说做的操作就是下载所需的四个资源环境包,分别为:gmp-6.1.0.tar.bz2、mpc-1.0.3.tar.gz、mpfr-3.1.4.tar.bz2、isl-0.16.1.tar.bz2。
可以采用手动下载的方式,提前下载好以上四个所需资源包,然后放在gcc-7.2.0的解压根目录,再执行./contrib/download_prerequisites --no-verify即可。
安装过程:
#将所有安装包上传到Linux环境下,解压缩处理
tar xvf gcc-7.2.0.tar.xz
cd gcc-7.2.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。这里我采用手动下载的方式,提前下载好所需资源包,之后上传到该目录下即可。
./contrib/download_prerequisites
#configure的最后一个参数是关闭32位库,只编译64位库,我的电脑是64位的。如果想要同时编译32位和64位,可以使用-enable-multilib
./configure --prefix=/usr/local/gcc-7.2.0 --enable-bootstrap --enable-languages=c,c++ --enable-threads=posix --enable-checking=release --disable-multilib --with-system-zlib
#执行命令进行编译,此处利用4个job
make -j16
#安装
make install
#成功执行完成之后,可以查看gcc和g++的版本
#测试
/usr/local/gcc-7.2.0/bin/gcc -v
CMake中指定需要的GCC版本
可以直接在shell中对CC和CXX进行指定:
export CC=/usr/local/gcc-7.2.0/bin/gcc
export CXX=/usr/local/gcc-7.2.0/bin/g++
cmake /path/to/your/project
make
也可以直接在cmake的命令行参数中进行指定:
cmake -D CMAKE_C_COMPILER=/usr/local/gcc-7.2.0/bin/gcc -D CMAKE_CXX_COMPILER=/usr/local/gcc-7.2.0/bin/g++
5. 运行GCC7.2
因为我们不是替换安装的方式, 所以运行需要的库默认是没有被添加到系统路径下的, 我们还需要额外的一步操作才能让gcc8.3编译出的程序正常的运行:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/gcc-7.2.0/lib64
可以直接将本行追加到~/.bashrc, 避免每次都单独写shell脚本追加该项. 注意更改~/.bashrc后记得重新连接终端, 让修改生效.
|