![](/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.