错误此版本的节点/ NAN/v8需要C++ 11编译器

Jul*_*ien 5 ubuntu node.js

我最近将Nodejs从0.13升级到6.9,当我运行我的nodejs应用程序时,我开始遇到一些错误,我google了一下,设法修复了一些错误并出现了新错误,我最终删除了node_modules我的应用程序的文件夹,清除了npm的缓存和再次运行npm安装,这是我卡住的地方,你可以在这个pastebin中看到完整的输出.

更多细节:

  • Ubuntu 12.04
  • v6.9.1的NodeJS(包括node --versionnodejs --version返回相同)
  • node-gyp,clang,gcc,make和build-essential都已安装

我的应用使用的节点模块:

  "dependencies": {
    "socket.io": "~1.2.1",
    "kurento-client": "Kurento/kurento-client-js",
    "mongoose": "~3.8.23",
    "dateformat": "~1.0.11",
    "underscore": "~1.8.3"
  }
Run Code Online (Sandbox Code Playgroud)

我一直在尝试这里的解决方案无济于事.

我怎样才能解决这个问题?

Jul*_*ien 18

最后解决了这个问题,我将把解决方案留在这里,以免遇到同样的问题.

这就是问题所在,Unbuntu 12.04 gcc在官方存储库中只有4.6.3,但C++ 11仅支持4.8.1,因此你需要从不同的PPA安装4.8:

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50
Run Code Online (Sandbox Code Playgroud)

现在这单独没有解决问题,因为它似乎node-gyp使用g++而不是gcc这样只是做同样的g++:

sudo apt-get install g++-4.8
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50
Run Code Online (Sandbox Code Playgroud)

之后sudo npm install应该没有问题.