Linux(CentOS 6.5) 手动升级gcc到gcc-6.1.0

从进入码农时代已经有好几年了,一直没有写博文的习惯,用到的很多东西没有记录,到后面就忘了,需要用时,又不停上百度google一下,费时间又费精力,还不一定能找到满意的答案,因此开个博客记录下。(废话不多说了)

  今天在公司服务器上源码安装Nodejs报错 WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CXX=g++),直接yum update gcc不能升级到4.8,然后只能手动处理了。

  开始,如果linux安装了wget命令:  

复制代码
1 wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-6.1.0.tar.gz
2 tar -zvxf gcc-6.1.0.tar.gz --directory=/usr/local/
3 cd /usr/local/gcc-6.1.0
4 ./contrib/download_prerequisites  
5 mkdir build && cd build  
6  ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib  
7 make && make install  
复制代码

  如果是在虚拟机上安装,可能需要3-4个小时,耐心等待吧,少年。。。

 

  如果如果,如果你的linux很不辛,没有安装wget命令,或者不能访问外网,怎么办???继续往下看:

  先下载好最新的gcc(http://ftp.gnu.org/gnu/gcc/),我用的gcc-6.1.0.tar.gz,通过ftp上传到Linux上,解压:  

1 tar -zvxf gcc-6.1.0.tar.gz --directory=/usr/local/
2 cd /usr/local/gcc-6.1.0

 

  然后用vi打开 ./contrib/download_prerequisites 文件,查看当前你下载的gcc需要哪些依赖包。打开后看到如下内容:

 

  由此,我们还需要下载 gmp-4.3.2.tar.bz2、isl-0.15.tar.bz2、mpc-0.8.1.tar.gz、mpfr-2.4.2.tar.bz2,注意,依赖包一定要是指定版本的,否则会出问题。下载好依赖包,直接解压到/usr/local/gcc-6.1.0/ 目录,然后设置软链接:

1 ln -sf gmp-4.3.2 gmp
2 ln -sf isl-0.15 isl
3 ln -sf mpc-0.8.1 mpc
4 ln -sf mpfr-2.4.2 mpfr

 

  设置好后,就可以开始安装了:

1 mkdir build && cd build  
2 ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib  
3 make && make install  

 

  然后就是漫长的等待过程,到此,一切准备OK。