2011-11-29 9 views
5

Podczas klonowania mojej pierwszej aplikacji Rails 3.1.1 moja pierwsza instalacja pakietu dławiła się w gemie eventmachine 0.12.10. (Używam Windows 7 32-bitowy)Sposób obchodzenia się z klejnotem EventMachine powoduje brakujący błąd pliku rubla dll, Windows 7

Używam również klejnotów "cienkich".

Znalazłem ten post, który miał ten sam problem.

Which version of eventmachine is able to work in windows?

Który ja zintegrowany z tej linii w moim gemfile:

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

Pozwoliło pakiet zainstalować uruchomić ale kiedy uruchomić serwer szyn dostaję okienko Ruby z rubinu nagłówka. exe - błąd systemu, a tekst

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

Po kliknięciu przycisku OK otrzymuję tę wiadomość w konsoli

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

a następnie długi ślad stosu (prośba o sprawdzenie, czy uważasz, że to pomoże).

Widzę, że gem EventMachine wymaga kompilatora C++. Ponownie zainstalowałem MinGW na moim 32-bitowym komputerze z Windows 7 i dodałem MinGW \ bin do mojej zmiennej PATH.

Ale kiedy zaglądam do tego folderu bin, plik libgcc_s_sjlj-1.dll nie istnieje i ten sam komunikat o błędzie występuje. Znalazłem ten wątek o braku tego folderu z 2009 roku, ale nie jestem do końca pewien, co z tym zrobić.

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

Dzięki za wszelką pomoc możesz mi dać.

+0

Wystąpił ten sam problem –

+1

Witamy w piekle kompatybilności z Windows/Linux! Te narzędzia open source nie są przeznaczone dla systemu Windows. Z mojego doświadczenia wynika, że ​​gdy rozwiążesz ten problem, napotkasz tylko na inny, dopóki się nie poddasz. Przejrzałem to.Proponuję rozwiązanie poboczne: uruchamianie zwirtualizowanego systemu Linux na komputerze z systemem Windows. To jest to, czego używam i działa bardzo dobrze, masz apt-get i wszystko działa natychmiast. – Offirmo

Odpowiedz

0

Dodaj to do swojej gem złożyć

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

Należy również pamiętać, że jeśli przełączyć z powrotem do systemu operacyjnego UNIX jest, trzeba będzie użyć 1.0.0.beta.4.

+0

Innymi słowy po prostu wykonaj 'gem 'eventmachine',"> = 1.0.0.beta.4 "," <= 1.0.0.beta.4.1 "' dla dobra między platformami! – dain

0

Jest tak prawdopodobnie dlatego, że eventmachine jest dynamicznie łączone z bibliotekami dll mingw.

Można:

require 'devkit' 

na górze skryptu. To tymczasowo ulepszy twoją ścieżkę ze ścieżką do mingw devkit.

Source

5

I rozwiązać ten problem poprzez dodanie

require "em/pure_ruby" 

w config/environment.rb

nadzieję, że to może pomóc.

Powiązane problemy