2011-11-29 14 views
5

Dopo aver clonato la mia prima app Rails 3.1.1, la mia prima installazione di bundle è stata soffocata sulla gemma 0.12.10 di eventmachine. (Sto utilizzando Windows 7 a 32 bit)EventMachine soluzione di errore causa la mancanza di errore di file dll errore ruby, Windows 7

Sto anche usando la gemma "sottile".

Ho trovato questo post che ha avuto lo stesso problema.

Which version of eventmachine is able to work in windows?

che ho integrato con questa linea nella mia Gemfile:

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

che ha permesso al bundle install a correre, ma quando inizio il server rotaie ottengo un popup rubino con il rubino intestazione. exe - Errore di sistema e il testo

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

Dopo aver fatto clic su OK ricevo questo messaggio nella console

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

seguito da una lunga traccia di stack (richiesta di verificare se si ritiene che ciò possa essere d'aiuto).

Vedo che la gemma EventMachine richiede un compilatore C++. Ho reinstallato MinGW sulla mia macchina Windows 7 a 32 bit e ho aggiunto MinGW \ bin alla mia variabile PATH.

Ma quando guardo quella cartella bin, il file libgcc_s_sjlj-1.dll non è lì e lo stesso messaggio di errore persiste. Ho trovato questo thread sulla mancanza di quella cartella dal 2009 ma non sono sicuro di cosa fare al riguardo.

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

Grazie per tutto l'aiuto che può dare.

+0

ha avuto lo stesso problema –

+1

Benvenuti nella compatibilità di windows/linux! Questi strumenti open source non sono progettati per Windows. Nella mia esperienza, quando avrai risolto questo problema, ne troverai solo un'altra, finché non ti arrendi. Ci sono passato.Suggerirei una soluzione alternativa: eseguire un linux virtualizzato sulla macchina Windows. È quello che uso e funziona molto bene, hai apt-get e tutto funziona immediatamente. – Offirmo

risposta

0

Aggiungi questo al vostro gioiello il file

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

noti inoltre che se si passa di nuovo ad un sistema operativo basato su Unix, si dovrà utilizzare 1.0.0.beta.4.

+0

In altre parole, esegui 'gem 'eventmachine',"> = 1.0.0.beta.4 "," <= 1.0.0.beta.4.1 "' per la bontà cross-platform! – dain

0

Ciò è probabilmente dovuto al fatto che eventmachine è collegato in modo dinamico alle DLL mingw.

È possibile:

require 'devkit' 

sulla parte superiore dello script. Ciò migliorerà temporaneamente il tuo percorso con il percorso verso il devkit mingw.

Source

5

Ho risolto questo problema aggiungendo

require "em/pure_ruby" 

nella cartella config/application.rb

Spero che questo potrebbe aiutare.

Problemi correlati