EventMachine gem解决方法导致缺少dll文件ruby错误,Windows 7

Len*_*onR 5 c++ gem windows-7 eventmachine ruby-on-rails-3.1

在克隆我的第一个Rails 3.1.1应用程序时,我的第一个bundle install在eventmachine 0.12.10 gem上被阻塞了.(我正在运行Windows 7 32位)

我也使用宝石'瘦'.

我发现这篇帖子有同样的问题.

哪个版本的eventmachine能够在Windows中运行?

我在我的gemfile中集成了这一行:

gem "eventmachine", ">= 1.0.0.beta"
Run Code Online (Sandbox Code Playgroud)

这允许捆绑安装运行,但是当我启动rails服务器时,我得到一个带有头文件ruby.exe的Ruby弹出窗口 - 系统错误和文本

The program can't start because libgcc_s_sjlj-1.dll is missing from your computer.  Try reinstalling the program to fix this problem.
Run Code Online (Sandbox Code Playgroud)

单击"确定"后,我在控制台中收到此消息

Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'
Run Code Online (Sandbox Code Playgroud)

然后是一个长堆栈跟踪(请求查看您是否认为这将有所帮助).

我看到EventMachine gem需要一个C++编译器.我在32位Windows 7机器上重新安装了MinGW,并将MinGW\bin添加到我的PATH变量中.

但是,当我查看该bin文件夹时,文件libgcc_s_sjlj-1.dll不存在,并且仍然存在相同的错误消息.我发现这个帖子关于2009年该文件夹的缺失,但我不确定该怎么做.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=539033

感谢你给与我的帮助.

小智 5

我通过添加解决了这个问题

require "em/pure_ruby"
Run Code Online (Sandbox Code Playgroud)

在config/application.rb中

希望这可以帮助.


Joe*_*oey 0

将其添加到您的 gem 文件中

gem 'eventmachine', '1.0.0.beta.4.1'
Run Code Online (Sandbox Code Playgroud)

另请注意,如果您切换回基于 UNIX 的操作系统,则必须使用1.0.0.beta.4.