由于系统的仓库源过于老旧,我们需要手动编译gcc工具包,我们系统自带的gcc版本为4.7,我们需要升级到6.1.0来支持后续系统的开发工作,同时为了远程开发的需要,vscode也必须支持gcc4.8以上才行。
编译前的准备工作:我们需要下载gcc6.1.0的压缩包
https://ftp.gnu.org/gnu/gcc/在该网站找到我们需要的版本的压缩包即可。下载完毕后将其解压出来。如果下载的tar.gz格式的,使用tar -zxvf xxx.tar.gz解压即可。
解压后我们找到 contrib/download_prerequisites文件,该文件描述了编译gcc所需要的三个依赖包
# Necessary to build GCC.
MPFR=mpfr-2.4.2
GMP=gmp-4.3.2
MPC=mpc-0.8.1
我们到对应的网站下载该软件包即可https://ftp.gnu.org/gnu/在该网站找到所有符合的软件包的位置并下载解压
下载解压完毕后分别对三个软件包完成配置与编译安装
cd ./gmp
./configure --prefix=/usr/local/gmp
make
make install
cd ./mpfr
./configure --prefix=/usr/local/mpfr --with-gmp=/usr/local/gmp
make
make install
cd ./mpc
./configure --prefix=/usr/local/mpc --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr
make
make install
如果包含 isl文件,配置文件需要写成如下格式
./configure --prefix=/usr/local/isl --with-gmp-prefix=/usr/local/gmp
导出编译路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc/lib:/usr/local/gmp/lib:/usr/local/mpfr/lib
source /etc/profile
或修改/etc/ld.so.conf配置文件
vi /etc/ld.so.conf添加/usr/local/mpc-1.0.1/lib
ldconfig
进入下载好的gcc源码包
./configure --prefix=/usr/local/gcc-4.8 --enable-threads=posix --disable-checking --disable-multilib --enable-languages=c,c++ --with-gmp=/usr/local/gmp --with-mpfr=/usr/local/mpfr --with-mpc=/usr/local/mpc
make
make install
此时软件安装完毕
如果是gcc10版本的编译则方便许多,在没网络的情况下依然需要提前下载好相关依赖包,但是无需自己编译
./contrib/download_prerequisites --directory="依赖包路径"
mkdir build-dir
cd build-dir
../configure --prefix=安装位置 --enable-bootstrap --enable-checking=yes --enable-languages=c,c++ --disable-multilib
make -j32
make install