Red Hat 编译运行node-v4.4.4的经历
发布于 8 年前 作者 classfellow 3703 次浏览 来自 分享

** 折腾了一天,光编译GCC 5.2.0 就好几个小时。 步骤繁琐,拿来分享,帮助需要在red hat 上运行node的需求。

1 为什么要编译node 用yum 升级Gcc 最高版本是4.4.x ,我的项目依赖自己的rcib模块,运行 npm install rcib 编译报错,需要一个支持C++11 的GCC。 v8使用C++11,因此直接二进制安装其库文件无法被低版本的GCC使用,安装任何C++模块都会有此问题。

2 详细步骤 1)wget http://ftp.gnu.org/gnu/binutils/
先编译安装binutils,建议使用2.24的版本。 安装完毕 运行 ld -v gold-v bfd-v ld.gold -v ld.bfd -v 测试安装是否成功, 都得通过哦,否则编译node报错。 注意
要在/usr/bin 下建立软连接 不建议直接安装到 /usr/bin/ 如果存在老版本,mv 改名 然后再建立软连接 2)wget http://gcc.parentingamerica.com/releases/gcc-5.2.0/gcc-5.2.0.tar.gz 下载GCC 在编译GCC前 需要 顺序 下载编译 GMP4.2+, MPFR 2.4.0+ and MPC 0.8.0+ 然后编译GCC ,我给出一个参考的参数设定 ./configure -prefix=/usr/local/gcc -enable-threads=posix -disable-checking -enable-languages=c,c++ --disable-multilib --with-gmp=/usr/local/gcc/gmp-4.3.2 --with-mpfr=/usr/local/gcc/mpfr-2.4.2 --with-mpc=/usr/local/gcc/mpc-0.8.1 3) 编译GCC 非常漫长,我在100G+ 内存,16核心CPU 好像编了3个多小时。 4) 运行如下指令卸载老版本 yum remove gcc yum remove gcc-c++ 5) 建立gcc 和 g++ 的软连接。运行 gcc -v g++ -v cc -v看版本号 已经为 5.2.0**
cc为gcc的软连接,不建立这个链接 编译node报错

6)接下来编译node
         先  LD_LIBRARY_PATH=/usr/local/gcc/lib64  一下,指示GCC使用新版库
		 然后按照流程编译吧

后记:
        使用低版本的GCC 编译出一个高版本GCC,仔细想想这事儿,好比在一个上帝的基础上,编译出了上帝的儿子!
回到顶部