我想在 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 存储库,并添加了 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 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\python.exe
设置添加到 PATH 变量中的文件夹 python.exe:
路径=C:\dev\python\;
需要手动安装这个 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''Visual C++ SP1 Compiler Update for Windows SDK 7.1'
由于 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
我使用如上所述的方法修复此问题。