我想在Windows 7 64位中为node.js安装zeromq。我试过
npm install zmq
它遗漏了phython.exe
。安装python (2.7.3)
后。
它再次给出了一些构建错误,如下所示:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1
答案 0 :(得分:7)
更新1
现在进行了改进npm install zmq
,但我认为你还需要Win SDK 7和VS C ++ 2010。
原始答案
不幸的是npm install zmq
仍然不起作用,但你可以从本地仓库安装它。
mscdex分叉了zeromq.node repo,并添加了windows支持,所以只需克隆他的zeromq.node
但在构建之前,您需要一些先决条件:
Microsoft Visual Studio C ++ 2010(Express没问题)
从“开始”菜单/ Microsoft Windows SDK v7.1
运行Windows SDK 7.1命令提示符转到克隆目录,然后键入
node-gyp configure
node-gyp build
这应该适用于Windows 7 64位。我将zeromq.node克隆到我的节点项目目录中,所以在app.js
我可以require('./zeromq.node')
。
答案 1 :(得分:4)
我自己遇到了很多麻烦,最终在经过几个小时的阅读后安装了它并试图解决问题:
安装python。确保安装了Python 2.7.x而不是3.x(我使用https://www.python.org但是cygwin的python也可以工作) 通过以下运行确认:
$ python -V
Python 2.7.9
设置PYTHON env变量,无论你安装它(或者cygwin的bin目录,如果以这种方式安装python):
PYTHON = C:\ dev的\蟒\ python.exe
设置添加到PATH变量中的python.exe文件夹:
PATH = C:\ dev的\蟒\;
需要手动安装此node-gyp:
$ npm install -g node-gyp
... Got slightly further...
所以我放弃尝试使用我当前的Visual C ++ 2010进行安装并使Visual C ++ 2012正常工作(想想2013也可能有效):
已安装' Visual Studio 2012 Express for Windows Desktop'
应该安装' 2012 Visual C++ Redistributables' (如果没有,请单独安装)。
还有' Windows7 SDK'已经按照balazs指令安装,所以可能也需要它。
现在尝试使用Windows命令行并指定要使用的版本:
$ npm install --msvs_version=2012 zmq
and it worked!
注意:想提一下我已安装的内容。已经有了Visual Studio C ++ 2010 Express'安装(安装了Visual C ++ 2010 Redistributables) 和Windows7 SDK,因为我有点遵循上面的balazs说明。
然后我尝试安装: ' Microsoft Visual Studio 2010 Service Pack 1' ' Windows SDK 7.1'
的Visual C ++ SP1编译器更新由于2010年都没有,所以我选择了2012年。 也许有人可以弄清楚是否有可能使它适用于C ++ 2010。
答案 2 :(得分:1)
我没有查看该软件包中的最新更改,但我为自己的项目编写了https://github.com/matthiasg/zeromq-node-windows,这些项目对zeromq-node项目进行了少量更改,以使其在Windows中运行...正如它在自述文件中所述我不提供支持,但也许这会让你开始?
答案 3 :(得分:1)
这个帖子非常有用,今天在Win10上对我有用:
npm install --msvs_version=2013 zmq
答案 4 :(得分:1)
最新更新:
Windows 8.1,节点v4.4.5,npm v3.10.5
npm -g install npm@next
请参阅this npm install --msvs_version=2015 zmq
注意:我不能再使用vs2012进行构建,上面提到的所有建议都不能使用构建错误error c2240 cannot convert from 'v8::Value *' to 'v8:object *volatile'
。也许是因为更新的nodejs v4.4.5(有人可以澄清这个吗?)。
然而,使用vs2015会产生构建错误win_delay_load_hook.c(34): error C2373: '__pfnDliNotifyHook2'
。我使用上面提到的npm@next
解决了这个问题。