您的位置:首页 > 运维架构 > Linux

CentOS6.8升级gcc;编译node.js的V8

2017-01-05 00:35 477 查看
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

运行:make ins-all prefix=/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编译的符号无法被识别;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: