centos7安装Nodejs时提示:gcc的版本过旧。于是下载了gcc-4.9.4的源码包gcc-4.9.4.tar.gz
在这里下载:
wget https://mirrors.ustc.edu.cn/gnu/gcc/gcc-4.9.4/gcc-4.9.4.tar.gz
解压,编译时提示:
gcc configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ and MPC 0.8.0+
编译安装gcc时需要GMP,MPFR,MPC这三个依赖的库,从这儿下载:
ftp://gcc.gnu.org/pub/gcc/infrastructure/
我选择了:gmp-4.2.3,mpfr-2.4.2,mpc-0.8.1
注意:mpfr库依赖于gmp,mpc依赖于gmp和mpfr。所以三个库的安装顺序为:
gmp->mpfr->mpc.
这里简单说一下过程:
在解压的目录下创建一个临时的用于编译的目录,进入目录执行安装过程:
tar zxvf gmp-4.2.3.tar.gzcd gmp-4.2.3mkdir gmp-build cd gmp-build../configure --prefix=/usr/local/gmp-4.2.3make && make install
mpfr和mpc的安装过程中要把依赖库加进去:
../configure --prefix=/usr/local/mpfr-2.4.2 --with-gmp=/usr/local/gmp-4.2.3
以及:
../configure --prefix=/usr/local/mpc-0.8.1 --with-gmp=/usr/local/gmp-4.2.3 --with-mpfr=/usr/local/mpfr-2.4.2
最后安装gcc
gcc的编译中默认只要64位的库;一定要忽略checking,否则慢死;指定安装c,c++的编译器,如果不指定会出错;为了保险可以加上库文件的位置:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc-0.8.1/lib:/usr/local/gmp-4.2.3/lib:/usr/local/mpfr-2.4.2/lib
最后执行:
../configure --prefix=/usr/local/gcc-4.9.4 --disable-multilib --disable-checking --enable-languages=c,c++ --with-gmp=/usr/local/gmp-4.2.3 --with-mpfr=/usr/local/mpfr-2.4.2 --with-mpc=/usr/local/mpc-0.8.1
建议将库文件的环境变量写入/etc/profile
将/usr/bin下的gcc指向安装的位置,完成。