cover-image
由于 node4.0+ 升级了 v8 的版本, 所以需要 C++11 以上的compiler支持, 也就是 gcc 4.8 以上.

可能装二进制包的 nodejs 没有问题, 但是在遇到编译 c++ 模块的时候, 就会报错了.

Cent

cent6 自带的gcc版本是4.4.7, 不过可以使用red hat出的devtoolset-3(其实这是一套, 有1,2 现在版本是3, 参照官方教程即可)升级gcc到4.8+, 使用yum可以直接搞定.

方法如下
使用 root 账号登陆或 sudo

rpm -ivh https://www.softwarecollections.org/en/scls/rhscl/devtoolset-3/epel-6-x86_64/download/rhscl-devtoolset-3-epel-6-x86_64.noarch.rpm

yum install devtoolset-3-gcc-c++
#devtoolset-3-gcc会被作为依赖安装

安装完毕后使用命令临时切换gcc版本'

scl enable devtoolset-3 bash
gcc -v #可以看到版本已经更新

如果需要永久覆盖, 可以

echo "source /opt/rh/devtoolset-3/enable" >> /etc/bashrc

重新登陆terminal生效

Ubuntu

ubuntu的话, 我自己使用的 12.04.4LTS, 自带gcc4.6, 升级方法如下

1.添加PPA源

add-apt-repository ppa:ubuntu-toolchain-r/test 

2.update

apt-get update

3.装

apt-get install g++-4.8
export CXX="g++-4.8"

4.查看gcc版本

gcc -v

5.如果是4.8+那就ok了, 如果不是, 应该是符号链接没有替换

ll /usr/bin/gcc*

如果看到gcc -> gcc-4.6是符号链接没有替换

rm gcc
ln -s gcc-4.8 gcc
rm g++
ln -s g++-4.8 g++

搞定