1.我系统是centOS 6.8. gcc的版本是4.4.7;因为需要编译node.js的C++扩展插件,所以安装了V8引擎,可是编译时报错。gcc不支持C++11.所以手动升级gcc一下;
2.获取安装包:
网址是:http://ftp.gnu.org/gnu/gcc/
我发布博客的当前时间来说,最新的是6.3.0
wget http://ftp.gnu.org/gnu/gcc/gcc-6.3.0/gcc-6.3.0.tar.bz2
解压:tar -jxvf gcc-6.3.0.tar.bz2
3.编译准备:
cd gcc-6.3.0
运行./contrib/download_prerequisites下载依赖项
其实就是下载mpfr => gmp => mpc三个包;安装有顺序要求。
貌似默认安装的版本比较旧。这些可以自行手动安装;目前没研究这些包新旧版本间的区别;
创建编译目录
mkdir gcc-build-6.3.0
cd gcc-build-6.3.0
../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre --enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-libjava-multilib --with-ppl --with-cloog --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux
运行../configure时报错:
configure: error: GNAT is required to build ada下载安装gnat
http://libre.adacore.com/download/configurations#
下载gnat-gpl-2016-x86_64-linux-bin.tar.gz并解压gnat-gpl-2016-x86_64-linux-bin
创建目录:/home/GCC/gnat
把路径添加到PATH:export PATH=/home/GCC/gnat/bin/:$PATH
4.编译
查看当前目录gcc-build-6.3.0下生成了新的Makefile
make -j4
5.安装
make install
编译安装完成后;还有其他工作要做;
a.更新动态库;如/lib64/libstdc++.so.7等。
b.重新编译第三方库等。
c.更新GDB,不然调测的时候会导致新GCC编译的符号无法被识别;