![](/img/trans.png)
[英]How can i detect that publisher is disconnected with ZeroMQ and Node.js
[英]how to install zeromq for node.js
我想在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
更新1
现在npm install zmq
正在进行改进,但我认为你还需要Win SDK 7和VS C ++ 2010。
原始答案
不幸的是, npm install zmq
仍然无法正常工作,但你可以从本地repo安装它。
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')
。
我自己遇到了很多麻烦,最终在经过几个小时的阅读后安装了它并试图解决问题:
安装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
设置python.exe添加到PATH变量的文件夹:
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 '(如果没有,单独安装)。
还有每个balazs指令已安装' Windows7 SDK ',所以可能也需要它。
现在尝试使用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。
我没有查看该软件包中的最新更改,但我为自己的项目编写了https://github.com/matthiasg/zeromq-node-windows ,它们对zeromq-node项目进行了一些小的更改,使其在Windows中运行。正如它在自述文件中所述,我不提供支持,但也许这会让你开始?
这个帖子非常有用,这就是今天在Win10上对我有用的东西:
npm install --msvs_version=2013 zmq
最新更新:
Windows 8.1,节点v4.4.5,npm v3.10.5
npm -g install npm@next
看到这个 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
修复此问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.