EventMachine gem обходной путь вызывает отсутствие ошибки ruby ​​файла dll, Windows 7 - PullRequest
5 голосов
/ 30 ноября 2011

После клонирования моего первого приложения на Rails 3.1.1 моя первая установка комплекта захлебнулась камнем eventmachine 0.12.10. (Я использую 32-битную Windows 7)

Я также использую гем 'thin'.

Я нашел этот пост с такой же проблемой.

Какая версия Eventmachine может работать в Windows?

Который я интегрировал с этой строкой в ​​свой gemfile:

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

Это позволило запустить установку комплекта, но когда я запускаю сервер rails, я получаю всплывающее окно Ruby с заголовком ruby.exe - Системная ошибка и текст

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'

с последующей длинной трассировкой стека (запрос, чтобы посмотреть, если вы думаете, это поможет).

Я вижу, что для EventMachine gem требуется компилятор C ++. Я переустановил MinGW на своем 32-битном компьютере с Windows 7 и добавил MinGW \ bin в переменную PATH.

Но когда я просматриваю эту папку bin, файл libgcc_s_sjlj-1.dll не появляется, и появляется то же сообщение об ошибке. Я нашел эту ветку об отсутствии этой папки с 2009 года, но я не совсем уверен, что с этим делать.

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

Спасибо за любую помощь, которую вы можете мне дать.

Ответы [ 3 ]

5 голосов
/ 20 февраля 2013

Я решил эту проблему, добавив

require "em/pure_ruby"

в config / application.rb

Надеюсь, это поможет.

0 голосов
/ 14 июня 2012

Вероятно, это связано с тем, что eventmachine динамически связан с dll mingw.

Вы можете:

require 'devkit'

в верхней части вашего скрипта. Это временно улучшит ваш путь к пути к Mingw Devkit.

Источник

0 голосов
/ 17 февраля 2012

Добавьте это в свой файл gem

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

Также обратите внимание, что если вы переключитесь обратно на ОС на базе Unix, вам придется использовать 1.0.0.beta.4.

...