1

我无法让 ffi-rzmq gem 在 Windows 上工作。

我已经从这里安装了 ZeroMQ 2.2 的 Windows 安装程序: http ://www.zeromq.org/distro:microsoft-windows

我已将 C:\Program Files\ZeroMQ 2.2.0\bin 添加到我的 PATH 变量中。

然后我安装了 ffi 和 ffi-rzmq gems

gem install ffi
gem install ffi-rzmq

但是当我启动一个 irb 并运行时:

require 'ffi-rzmq'

我收到这条消息:

irb(main):001:0> require 'ffi-rzmq'
Unable to load this gem. The libzmq library (or DLL) could not be found.
If this is a Windows platform, make sure libzmq.dll is on the PATH.
For non-Windows platforms, make sure libzmq is located in this search path:
["C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/ffi-rzmq-0.9.3/lib/ffi-rz
mq/../../ext/libzmq.dll", "/usr/local/lib/libzmq.dll", "/opt/local/lib/libzmq.dl
l", "/usr/local/homebrew/lib/libzmq.dll", "/usr/lib64/libzmq.dll"]

奇怪的是,Zero MQ安装程序似乎没有打包一个libzmq.dll,只有libzmq-v100-mt.dll

我确定我正在做一些非常明显的错误,但我看不出它是什么......有人可以帮忙吗?

谢谢。

4

2 回答 2

2

我已经设法解决了这个问题 - ffi-rzmq 给出的错误消息实际上在最新版本中有所改进。

Nathan 是对的,我必须将 libzmq-v100-mt.dll 重命名为 libzmq.dll,但这还不够——我使用的是 ZMQ 的 64 位编译版本,但由于某种原因 ffi-rzmq 与32位版本。

因此,一旦我卸载 64 位版本,安装 32 位版本,将 dll 重命名为 libzmq.dll 并调整路径以指向 zmq 的“c:\program files (x86)”版本,一切正常。

于 2012-08-21T08:54:07.370 回答
1

您必须将 libzmq-v100-mt.dll 重命名为 libzmq.dll - 我不知道他们为什么决定让 Windows 构建输出不同的库名称。

我遇到了同样的问题,一旦我重命名文件 zeromq 就开始正常工作。

(好吧,从技术上讲,我必须先修复我的代码,但然后 zeromq 工作正常)。

于 2012-08-19T05:31:36.927 回答