简介

GNU 编译器套件(GNU Compiler Collection)包括 C、 C++、 Objective-C、 Fortran、 Java、Ada 和 Go 语言的前端,也包括了这些语言的库(如 libstdc++、 libgcj 等等)。

官网地址:传送门

编译 4.9.4版本

下载相关依赖包

GCC 4.9.4 released [2016-08-03]

# GCC
ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.9.4/

# Necessary to build GCC. 
# 当您使用的系统不能直接链接互联网的时候,可以手动下载依赖包
# 否者就不需要手动下载了

MPFR=mpfr-2.4.2
ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
GMP=gmp-4.3.2
ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
MPC=mpc-0.8.1
ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
# Necessary to build GCC with the Graphite loop optimizations.
ISL=isl-0.12.2
ftp://gcc.gnu.org/pub/gcc/infrastructure/isl-0.12.2.tar.bz2
CLOOG=cloog-0.18.1
ftp://gcc.gnu.org/pub/gcc/infrastructure/cloog-0.18.1.tar.gz

备注:怎么知道下载哪些依赖包呢? vim ./contrib/download_prerequisites 查看所需的依赖库的下载了路径,例如: MPFR=mpfr-2.4.2 wget ftp://gcc.gnu.org/pub/gcc/infrastructure/$MPFR.tar.bz2 || exit 1 因此,mpfr 的下载路径为: ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2

配置依赖文件

1)将下载的压缩包上传,现将 gcc-4.9.4.tar.bz2 压缩包解压缩

tar jxvf gcc-4.9.4.tar.bz2

2)然后将其他依赖包移动至解压后的 gcc-4.9.4 文件夹

mv mpfr-2.4.2.tar.bz2 gmp-4.3.2.tar.bz mpc-0.8.1.tar.gz \
  mpc-0.8.1.tar.gz cloog-0.18.1.tar.gz gcc-4.9.4

3)修改 download_prerequisites 文件

vim ./gcc-4.9.4/contrib/download_prerequisites

在带有 wget 的每一行最前面添加“#”字符,将其注释掉

4)配置依赖文件

cd gcc-4.9.4
./contrib/download_prerequisites
cd ..

编译 gcc

mkdir gcc-build-4.9.4
cd gcc-build-4.9.4
../gcc-4.9.4/configure \
  --prefix=$HOME/software/gcc/4.9.4 \
  --enable-bootstrap \
  --enable-shared \
  --enable-checking=release \
  --enable-threads=posix \
  --enable-languages=all \
  --with-system-zlib \
  --enable-__cxa_atexit \
  --build=x86_64-kylin-linux \
  2>&1 | tee configure.log
make -j12
make install

使用

export PATH=$HOME/software/gcc/4.9.4/bin:$PATH
export LD_LIBRARY_PATH=$HOME/software/gcc/4.9.4/lib64:$LD_LIBRARY_PATH