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

EventMachine gem workaround causes missing dll file ruby error, Windows 7

本文关键字:ruby 文件 错误 Windows dll 解决 gem 方法 EventMachine      更新时间:2023-10-16

在克隆我的第一个Rails 3.1.1应用程序时,我的第一次捆绑包安装在事件机器0.12.10 gem上受阻。(我运行的是Windows 7 32位(

我也在用宝石"薄"。

我发现这个帖子也有同样的问题。

哪个版本的eventmachine能够在windows中工作?

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

gem "eventmachine", ">= 1.0.0.beta"

这允许捆绑包安装运行,但当我启动rails服务器时,我会得到一个Ruby弹出窗口,标题为Ruby.exe-System Error和文本

The program can't start because libgcc_s_sjlj-1.dll is missing from your computer.  Try reinstalling the program to fix this problem.

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

Unable to load the EventMachine C extension; To use the pure-ruby reactor, require 'em/pure_ruby'

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

我发现EventMachinegem需要一个C++编译器。我在我的32位Windows7机器上重新安装了MinGW,并将MinGW\bin添加到我的PATH变量中。

但是,当我查看该bin文件夹时,文件libgcc_s_sjlj-1.dll不在那里,并且同样的错误消息仍然存在。我发现了这个关于2009年缺少那个文件夹的帖子,但我真的不知道该怎么办

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

谢谢你能给我的任何帮助。

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

require "em/pure_ruby"

在config/application.rb 中

希望这能有所帮助。

将其添加到您的gem文件中

gem 'eventmachine', '1.0.0.beta.4.1'

还要注意,如果切换回基于unix的操作系统,则必须使用1.0.0.beta.4

这可能是因为eventmachine动态链接到了mingw dll。

您可以:

require 'devkit'

在你的剧本顶部。这将通过到mingw devkit的路径暂时增强您的路径。