2010-09-03 8 views
11

Je suis sur le point de devenir fou ici, donc je vais simplement demander:Installation des extensions Ruby natif sur Windows pour Jekyll

Comment diable avez-vous installer Ruby Gem Jekyll sur Windows.

Jekyll dépend rapide égrappoir-et qui a 1.0.0 être construit comme une extension native

J'ai trouvé ce guide pratique sur RubyDevKit installer un environnement « sain d'esprit » sous Windows et il fonctionne, mais rapide -stemmer est toujours mordicus à l'aide de nmake pour construire les binaires et qui renvoie l'erreur suivante:

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 

J'utilise le nmake fourni avec Visual studio 2010 dans C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ bin comme suggéré dans un autre article. Mais ça ne marche toujours pas. J'ai essayé d'exécuter l'installation gem à partir du shell MSYS fourni avec le DevKit, donc j'ai un make Unix à ce stade, mais je ne sais pas comment indiquer à Ruby d'utiliser make au lieu de nmake (et lire le mkmf.rb ne m'a pas éclairé non plus). Il est l'enfer plié sur l'utilisation nmake et qui échoue à peu avec le message d'erreur ci-dessus

Toute aide sur ce serait grandement apprécié!

Mise à jour J'ai finalement réalisé que je n'avais pas installé Ruby via RubyInstaller.org. J'ai réinstallé en utilisant le programme d'installation et maintenant jekyll de construction avec le DevKit fonctionne très bien.

Merci à tous pour le souligner!

+0

Le include_path n'est pas réglé correctement ici. – alternative

+0

Où puis-je définir le chemin d'inclusion? J'ai mis à jour la question. nmake est en fait dans VC \ bin .. – Tigraine

+0

Vous mélangez l'installation de mswin32 avec le DevKit qui est mingw32. Vous avez besoin d'un Ruby compilé avec mingw32, qui est RubyInstaller –

Répondre

5

Il y a une confusion avec les instructions que vous suivez. Les instructions de RubyInstaller DevKit ont été créées pour prendre en charge l'installation d'extensions à l'aide des versions compilées de RubyInstaller de Ruby. Il est clair, à partir de votre répertoire actuel (studio visuel) et de la sortie de l'installation de gemme que vous utilisez mswin32 basé sur Ruby, qui ne fonctionnera pas avec RubyInstaller ou le DevKit que nous avons documenté.

S'il vous plaît installer Ruby et DevKit de RubyInstaller site Web et suivez les instructions et éviter de mélanger avec Visual Studio

+0

Oui, vous semblez que vous utilisez un ancien mswin avec le "nouveau" mingw devkit. Malheureusement, ce n'est pas une option. – rogerdpack

1

Où que mswin32 vient? Utilisez-vous le DevKit avec le port mswin32 de l'IRM? Le DevKit est uniquement pour le port MinGW actuel de MRI et YARV, il ne fonctionne pas avec le port mswin32 (qui, BTW, est obsolète depuis un certain temps maintenant).

Si vous utilisez le port mswin32, vous êtes plus ou moins sur votre propre. En particulier, vous devez utiliser Microsoft Visual C++ 6.0, parce que ce port mswin32 est compilé avec, et les versions ultérieures de Visual C++ ne sont pas garantis pour être binaire compatible. Visual C++ 10.0 (qui est ce que vous semblez utiliser) ne fonctionne pas. Essayez de forcer la plate-forme en appelant explicitement gem install --platform=mswin32 fast-stemmer ou même gem install --platform=x86-mswin32-60 fast-stemmer. De cette façon, si le responsable a fourni une version pré-compilée, vous n'avez pas besoin de la compiler vous-même. Si vous faites et non utilisez le port mswin32 mais le port MinGW, essayez d'appeler explicitement gem install --platform=ruby fast-stemmer. Et si cela ne suffit pas, essayez gem install --platform=x86-mingw32 fast-stemmer

+0

Jörg est correct. Vous mélangez l'installation de mswin32 avec le kit de développement mingw32. Pour que le DevKit fonctionne vous avez besoin d'un Ruby fourni par RubyInstaller (basé sur mingw32) –

+0

fast-stemmer ne fournit pas de binaires pour Windows, vous avez besoin d'un compilateur fonctionnel. –

+0

J'utilise la version mingw32 et j'ai toujours des problèmes. Ma sortie est .... creating Makefile faire générer égrappoir-i386-mingw32.def /bin/sh: -c: ligne 0: erreur de syntaxe près de jeton inattendu '(» /bin/sh: -c: ligne 0: 'C:/Ruby193/bin/ruby ​​-e \ met EXPORTS, + Init_stemmer.sub (/ \ .. * \ z /,) \> stemmer-i386-mingw32.def ' make: *** [ stemmer-i386-mingw32.def] Erreur 258 Donc, ce n'est pas tout à fait un problème de version de Ruby, mais oui, vous avez besoin de devkit pour travailler.Je suis assez nouveau pour C/C++ et les extensions Ruby sont encore un peu mystérieux –