在Linux环境下从源码构建并安装GCC

对于可以方便的访问公网的机器,安装GCC时可以直接通过yum或者apt-get命令完成。但对于无法访问外网,或者软件源更新不及时的环境,出于业务需要更新GCC时,则需要从源码发出来构建。
本文记录从源码构建GCC的指令。

安装指导

检查环境

通过源码形式安装GCC时,则本机需要安装有一个低版本的GCC。
执行如下命令,检查本机是否已安装GCC。如下是在我本机,检查GCC软件时的情况。

$ which gcc
/usr/bin/gcc

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) 

下载软件

链接见下。

编译前准备

  • 将软件下载至$CODE_ROOT目录,并解压。
cd $CODE_ROOT
tar vxfz gcc-9.2.0.tar.gz
tar vxfz mpc-1.0.3.tar.gz
tar vxfj gmp-6.1.0.tar.bz2
tar vxfj isl-0.18.tar.bz2
tar vxfj mpfr-3.1.4.tar.bz2

ln -s mpc-1.0.3 gcc-9.2.0/mpc
ln -s gmp-6.1.0 gcc-9.2.0/gmp
ln -s isl-0.18 gcc-9.2.0/isl
ln -s mpfr-3.1.4 gcc-9.2.0/mpfr
  • 配置编译参数,生成Makefile。
mkdir -p $CODE_ROOT/gcc-9.2.0-build
cd $CODE_ROOT/gcc-9.2.0-build
../gcc-9.2.0/configure --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib

第一遍编译和安装

使用低版本GCC,编译、构建高版本GCC。
默认情况下,安装路径为/usr/local

cd $CODE_ROOT/gcc-9.2.0-build
make -j8
make install

第二遍编译和安装

使用高版本GCC,重新构建一次。
默认情况下,安装路径为/usr/local

export PATH=/usr/local/bin:$PATH
cd $CODE_ROOT/gcc-9.2.0-build
rm -rf *
../gcc-9.2.0/configure --enable-checking=release --enable-languages=c,c++,fortran --disable-multilib
make -j8
make install

资源链接

  • gcc infrastructure
  • gcc-9.2.0
  • mpc-1.0.3
  • gmp-6.1.0
  • isl-0.18
  • mpf4-3.1.4

你可能感兴趣的:(linux)