Ruby Mac 环境下搭建 zeromq 配合 ffi-rzmq

marssun · 2015年11月13日 · 3381 次阅读

ruby 版本

  • 2.2.1

安装 zeromq

brew install zeromq32

从目前的实践来看,zero 的最新稳定版本为 4.1.x,但是在实践过程中发现这个最新版本似乎和 mac、ruby 的环境有一定的不吻合,原因自己也没有弄清楚。在查找问题的过程中发现,其他的开发者也遇到的同样的问题,目前我采用的解决方式是选择低版本的 zeromq。在 github 有人已经报告了这个问题,链接地址

安装 gem 包

gem install ffi-rzmq

安装完成后,可以参考 github 中给出的例子进行测试,示例

发生问题时的提示输出

ruby(52657,0x10969d000) malloc: *** error for object 0x7fa5eb4bb6b8: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6

这个可能是 gem 的 C 扩展中发生的错误,但并不确定,在其他情况下也可能发生上述的错误,从输出的语义来看应该是请求了一个已经被析构的对象。

Bad address (src/fq.cpp:91)
Abort trap: 6

这个是我对测试代码做了一点点修改后出现的提示错误,正是用这条提示错误找到了上面说的 github 中报告的问题,并把 zeromq 的版本降到了 3.2。 在将 zeromq 的版本降到 3.2 后,上面例子链接中的示例就可以正常运行了(并没有测试所有的示例)。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请 注册新账号