2010-09-03 22 views
11

Estoy a punto de volverse loco aquí así que voy a preguntar:Instalación de extensiones de Ruby nativas en Windows para Jekyll

¿Cómo demonios se instale la gema de rubíes Jekyll en Windows.

Jekyll depende de rápido-despalilladora-1.0.0 y que tiene que ser construido como una extensión nativa

me encontré con esta práctica guía en RubyDevKit instalar un entorno 'sana' en Windows y funciona, pero rápido -stemmer es todavía decidido a utilizar nmake para construir los binarios y que devuelve el siguiente error:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>gem install jekyll 
Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
ERROR: Error installing jekyll: 
     ERROR: Failed to build gem native extension. 

C:/Ruby/bin/ruby.exe extconf.rb 
creating Makefile 

nmake 

Microsoft (R) Program Maintenance Utility Version 10.00.30319.01 
Copyright (C) Microsoft Corporation. All rights reserved. 

     cl -nologo -I. -IC:/Ruby/lib/ruby/1.8/i386-mswin32 -IC:/Ruby/lib/ruby/1. 
8/i386-mswin32 -I. -MD -Zi -O2b2xg- -G6 -c -Tcporter.c 
cl : Command line warning D9035 : option 'Og-' has been deprecated and will be r 
emoved in a future release 
cl : Command line warning D9002 : ignoring unknown option '-G6' 
porter.c 
porter.c(31) : fatal error C1083: Cannot open include file: 'stdlib.h': No such 
file or directory 
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0 
\VC\BIN\cl.EXE"' : return code '0x2' 
Stop. 


Gem files will remain installed in C:/Ruby/lib/ruby/gems/1.8/gems/fast-stemmer-1 
.0.0 for inspection. 
Results logged to C:/Ruby/lib/ruby/gems/1.8/gems/fast-stemmer-1.0.0/ext/gem_make 
.out 

estoy usando el nmake que se incluye con Visual Studio 2010 en C: \ archivos de programa (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin como se sugiere en algún otro Artículo. Pero todavía no funciona.

He intentado ejecutar la instalación de gema desde el shell MSYS que viene con el DevKit, así que tengo el Unix en ese momento, pero no sé cómo ordenar a Ruby usar make en lugar de nmake (y leer el mkmf.rb tampoco me iluminó). Está empeñado en usar nmake y eso falla bastante con el mensaje de error anterior

¡Cualquier ayuda en esto sería muy apreciada!

Actualización Finalmente me di cuenta de que no había instalado Ruby a través de RubyInstaller.org. Volví a instalar usando el Instalador y ahora construir jekyll con DevKit funciona bien.

¡Gracias a todos por señalar eso!

+0

La ruta de inclusión no está siendo adecuadamente configurado aquí. – alternative

+0

¿Dónde configuro la ruta de inclusión? He actualizado la pregunta. nmake está realmente en VC \ bin. – Tigraine

+0

Está mezclando la instalación de mswin32 con DevKit que es mingw32. Necesita un Ruby compilado con mingw32, que es RubyInstaller –

Respuesta

5

Existe una confusión con las instrucciones que está siguiendo. Las instrucciones de RubyInstaller DevKit se crearon para admitir la instalación de extensiones utilizando las versiones compiladas de RubyInstaller de Ruby.

Está claro, desde su directorio actual (estudio visual) y la salida de la instalación de gemas que está utilizando mswin32 basado en Ruby, que no funcionará con RubyInstaller o el DevKit que documentamos.

favor instale Ruby y el DevKit de RubyInstaller sitio web y siga las instrucciones que allí y no mezclar con Visual Studio

+0

sí Parece que estás usando un viejo mswin con el "nuevo" mingw devkit. Lamentablemente, esta no es una opción. – rogerdpack

1

¿De dónde viene ese mswin32? ¿Estás utilizando el DevKit con el puerto mswin32 de MRI? El DevKit es solo para el puerto MinGW actual de MRI y YARV, no funciona con el puerto mswin32 (que, por cierto, ha quedado obsoleto desde hace bastante tiempo).

Si usa el puerto mswin32, está más o menos por su cuenta. En particular, usted debe usar Microsoft Visual C++ 6.0, porque eso es con lo que se compila el puerto mswin32, y no se garantiza que las versiones posteriores de Visual C++ sean compatibles con binarios. Visual C++ 10.0 (que es lo que pareces estar usando) no funciona. Intente forzar la plataforma llamando explícitamente al gem install --platform=mswin32 fast-stemmer o incluso al gem install --platform=x86-mswin32-60 fast-stemmer. De esta forma, si el mantenedor le ha proporcionado una versión compilada previamente, no necesita compilarla usted mismo.

Si lo hace no utilice el puerto mswin32 sino el puerto MinGW, intente llamar explícitamente al gem install --platform=ruby fast-stemmer. Y si eso no ayuda, intente gem install --platform=x86-mingw32 fast-stemmer

+0

Jörg es correcto. Está mezclando la instalación de mswin32 con mingw32 Development Kit. Para que DevKit funcione, necesita un Ruby provisto por RubyInstaller (basado en mingw32) –

+0

fast-stemmer no proporciona binarios para Windows, necesita un compilador que funcione. –

+0

Estoy usando la versión mingw32 y todavía tengo problemas. Mi salida es ... crear Makefile generar generar stemmer-i386-mingw32.def /bin/sh: -c: línea 0: error de sintaxis cerca del token inesperado '(' /bin/sh: -c: línea 0: 'C:/Ruby193/bin/ruby ​​-e \ puts EXPORTS, + Init_stemmer.sub (/ \ .. * \ z /,) \> stemmer-i386-mingw32.def ' make: *** [ stemmer-i386-mingw32.def] Error 258 Por lo tanto, no es del todo un problema de versión de Ruby, pero sí, necesitas devkit para trabajar. Soy bastante nuevo en C/C++ y las extensiones de Ruby son un misterio todavía. –

Cuestiones relacionadas