Обходной путь EventMachine gem вызывает ошибку Ruby об отсутствующем файле dll, Windows 7

После клонирования моего первого приложения Rails 3.1.1 моя первая установка пакета захлебнулась гемом eventmachine 0.12.10. (У меня 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.

После того, как я нажимаю OK, я получаю это сообщение в консоли

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

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

Я вижу, что гему EventMachine требуется компилятор 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

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


person LennonR    schedule 29.11.2011    source источник
comment
Добро пожаловать в ад совместимости Windows/Linux! Эти инструменты с открытым исходным кодом не предназначены для Windows. По моему опыту, когда вы решите эту проблему, вы столкнетесь только с другой, пока не сдадитесь. Я прошел через это. Я бы предложил побочное решение: запустить виртуализированный Linux на вашем компьютере с Windows. Это то, что я использую, и это работает очень хорошо, у вас есть apt-get, и все работает сразу.   -  person Offirmo    schedule 11.06.2012


Ответы (3)


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

require "em/pure_ruby"

в config/application.rb

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

person Lau    schedule 20.02.2013

Добавьте это в свой файл драгоценного камня

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

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

person Joey    schedule 17.02.2012
comment
Другими словами, просто сделайте gem 'eventmachine', ">= 1.0.0.beta.4", "<= 1.0.0.beta.4.1" для кроссплатформенности! - person dain; 03.04.2012

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

Ты сможешь:

require 'devkit'

в верхней части вашего сценария. Это временно улучшит ваш путь путем к mingw devkit.

Источник

person gpavlidi    schedule 14.06.2012