2011-11-29 7 views
5

Al clonar mi primera aplicación Rails 3.1.1, mi primer paquete de instalación se atascó en la gema eventmachine 0.12.10. (Estoy ejecutando Windows 7 de 32 bits)EventMachine solución de gema causa la pérdida del archivo DLL error de ruby, Windows 7

También estoy usando gem 'thin' también.

Encontré esta publicación que tenía el mismo problema.

Which version of eventmachine is able to work in windows?

Qué integré con esta línea en mi Gemfile:

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

que permitió que el paquete de instalación de correr, pero cuando inicio el servidor de rieles me sale una ventana emergente rubí con el rubí cabecera. EXE - Error de sistema y el texto

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

Después de hacer clic en OK me sale este mensaje en la consola

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

seguido de un rastro de pila larga (solicite ver si cree que esto ayudará).

Veo que la gema de EventMachine requiere un compilador de C++. Reinstalé MinGW en mi máquina de Windows 7 de 32 bits y agregué MinGW \ bin a mi variable PATH.

Pero cuando miro en esa carpeta bin, el archivo libgcc_s_sjlj-1.dll no está allí y persiste el mismo mensaje de error. Encontré este hilo sobre la falta de esa carpeta desde 2009, pero no estoy muy seguro de qué hacer al respecto.

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

Gracias por cualquier ayuda que me puedan dar.

+0

tiene el mismo problema –

+1

¡Bienvenido a la compatibilidad de windows/linux! Esas herramientas de código abierto no están diseñadas para Windows. En mi experiencia, cuando hayas resuelto este problema, solo te toparás con otro, hasta que te des por vencido. He pasado por eso.Sugeriría una solución lateral: ejecutar un Linux virtualizado en su máquina de Windows. Es lo que uso y funciona muy bien, tienes apt-get y todo funciona de inmediato. – Offirmo

Respuesta

0

Agregar a su joya el archivo

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

También tenga en cuenta que si se cambia de nuevo a un sistema operativo basado en UNIX, que tendrá que utilizar 1.0.0.beta.4.

+0

En otras palabras, simplemente haga 'gem 'eventmachine',"> = 1.0.0.beta.4 "," <= 1.0.0.beta.4.1 "' para bondad multiplataforma! – dain

0

Esto es probablemente porque eventmachine está dinámicamente vinculado a mingw dlls.

Puede:

require 'devkit' 

en la parte superior de su script. Esto mejorará temporalmente su camino con la ruta de acceso a mingw devkit.

Source

5

He resuelto este problema mediante la adición de

require "em/pure_ruby" 

en el config/application.rb

la esperanza que esto podría ayudar.

Cuestiones relacionadas