Node使用C/C++ Addon遇到的问题及解决办法

528 查看

在安装一些npm模块的时候,经常遇到需要在本机编译的包。在Linux系统下很少遇到问题。但是在Windows上会遇到不少莫名其妙的问题。在此将问题和解决方法记录如下。

node-gyp的使用

NodeC/C++ Addon采用node-gyp来产生工程,进行编译。所以,很多时候是node-gyp没有用对。安装如下设置即可。

安装编译工具

  1. 安装Visual C++ Build Tools或者Visual Studio Community。如果系统为Windows Vista或者Windows 7则需要安装.NET Framework 4.5.1

  2. 安装Python 2.7并运行npm config set python python2.7node-gyp只支持2.7版本的python

  3. 在命令行中运行npm config set msvs_version 2015来设置编译环境。

如果不能正常工作,参考Microsoft's Node.js Guidelines for Windows

设置node-gyp使用的python

node-gyp是在npm命令中使用时(使用npm安装Node模块),如果使用多种版本的python,则可以通过如下命令,明确设置node-gyp所使用的python

npm config set python /path/to/executable/python2.7

当全局安装node-gyp时,如果使用多种版本的python,则可以通过如下命令,明确设置node-gyp所使用的python

node-gyp --python /path/to/python2.7

常见问题

python版本不对

按照node-gyp的使用来搭建node-gyp必要的运行环境。

v8::”下的代码出现编译错误

编译环境问题。使用Visual C++ Build Tools或者Visual Studio Community开发人员命令提示这一类的控制台工具进行安装。此类工具会自动设置编译需要的环境变量。