GCC 升级
1、下载源码
wget ftp://ftp.gnu.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.gz
2、下载依赖包
编译安装 GCC 需要依赖 mpc,mpfr,gmp包。好在 GCC 源码里自带脚本可以轻松下载依赖包。
tar zxf gcc-4.8.5.tar.gz cd gcc-4.8.5 ./contrib/download_prerequisites
在此脚本里可以看到依赖包的版本号依次是 mpc-0.8.1,mpfr-2.4.2,gmp-4.3.2。
3、编译安装
mkdir gcc-build-4.8.5 cd gcc-build-4.8.5 ../configure --prefix=/usr make && make install
为了避免安装后系统里出现多个版本的 GCC,这里直接将编译安装的目录指定为 /usr,如果不指定 –prefix,则会默认安装到 /usr/local 下。
GCC 4.8.5 光是源代码就有105MB,因此可以预见整个编译过程需要很长时间(差不多 2 个小时左右)。
4、查看版本号
gcc --version gcc (GCC) 4.8.5 g++ --version g++ (GCC) 4.8.5 which gcc /usr/bin/gcc which g++ /usr/bin/g++
注:本次是在 CentOS 6.7 x86_64 下安装成功。
我在安装此步骤时候出错,错误描述:
compilation terminated. make[5]: *** [_gcov_merge_add.o] 错误 1 make[5]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/32/libgcc' make[4]: *** [multi-do] 错误 1 make[4]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc' make[3]: *** [all-multi] 错误 2 make[3]: *** 正在等待未完成的任务.... make[3]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2/x86_64-unknown-linux-gnu/libgcc' make[2]: *** [all-stage1-target-libgcc] 错误 2 make[2]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2' make[1]: *** [stage1-bubble] 错误 2 make[1]: Leaving directory `/home/imdb/gcc-4.8.2/gcc-build-4.8.2' make: *** [all] 错误 2
大概看看,错误集中在 x86_64unknown-linux-gnu/32/libgcc 和 x86_64-unknown-linux-gnu/libgcc
根据参考文献[3],安装如下两个软件包(仅用于CentOS6.X):
sudo yum -y install glibc-devel.i686 glibc-devel