系统:Linux 6.5 (x86_64), gcc: 4.4.6
- 准备工作,如果无法直接联网,则手动获取如下源码包:
gcc-4.8.2.tar.gz,http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz
mpfr-2.4.2.tar.bz2,ftp://gcc.gnu.org/pub/gcc/infrastructure/mpfr-2.4.2.tar.bz2
gmp-4.3.2.tar.bz2,ftp://gcc.gnu.org/pub/gcc/infrastructure/gmp-4.3.2.tar.bz2
mpc-0.8.1.tar.gz,ftp://gcc.gnu.org/pub/gcc/infrastructure/mpc-0.8.1.tar.gz
- 解压缩gcc4.8.2的源码包:
tar -xf gcc-4.8.2.tar.gz
- 进入到源码目录gcc-4.8.2,完成mpfr, gmp以及mpc的解压缩和设置
将上述压缩包放在gcc-4.8.2源代码根目录中:
tar xjf mpfr-2.4.2.tar.bz2
tar xjf gmp-4.3.2.tar.bz2
tar xzf mpc-0.8.1.tar.gz
然后再建立软连接:
ln -sf mpfr-2.4.2 mpfr
ln -sf gmp-4.3.2 gmp
ln -sf mpc-0.8.1 mpc
之后移除3个压缩包:rm mpfr-2.4.2.tar.bz2 gmp-4.3.2.tar.bz2 mpc-0.8.1.tar.gz
- 建一个与gcc-4.8.2源代码目录平级的目录:gcc-build-4.8.2
cd ../
mkdir gcc-build-4.8.2
- 进入该目录进行配置工作:
cd gcc-build-4.8.2
../gcc-4.8.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
--enable-languages表示你要让你的gcc支持那些语言,--disable-multilib不生成编译为其他平台可执行代码的交叉编译器。--disable-checking生成的编译器在编译过程中不做额外检查,也可以使用--enable-checking=xxx来增加一些检查;
该命令执行完成后,将在gcc-build-4.8.2的目录下生成make相关的文件
- 执行编译:make
大概等个1小时左右(视机器配置情况定)
- 安装:make install
- 检查升级结果:
[root@lday gcc-build-4.8.2]# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 4.8.2 (GCC)
[root@lday gcc-build-4.8.2]# g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.8.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.8.2/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 4.8.2 (GCC)