Установка собственных расширений Ruby в Windows для Jekyll - PullRequest
11 голосов
/ 04 сентября 2010

Я собираюсь сойти с ума здесь, поэтому я просто спрашиваю:

Как, черт возьми, вы устанавливаете Ruby Gem Jekyll на Windows.

Jekyll зависит от fast-stemmer-1.0.0, и это должно быть построено как собственное расширение

Я нашел это удобное руководство на RubyDevKit , чтобы установить «нормальную» среду в Windows, и она работает, но fast-stemmerвсе еще чертовски склонен к использованию nmake для сборки двоичных файлов, и это возвращает следующую ошибку:

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

Я использую nmake, поставляемый с Visual Studio 2010 в C: \ Program Files (x86) \ Microsoft VisualStudio 10.0 \ VC \ bin, как предложено в другой статье.Но это все еще не работает.

Я попытался запустить установку gem из оболочки MSYS, которая поставляется с DevKit, поэтому у меня уже есть Unix make, но я не знаю, как это сделать.поручите Ruby использовать make вместо nmake (и чтение mkmf.rb меня тоже не просветило).Он чертовски склонен к использованию nmake, и с сообщением об ошибке выше оно не работает

Любая помощь по этому вопросу будет принята с благодарностью!

Обновление Я наконец понял, что неустановил Ruby через RubyInstaller.org.Я переустановил с помощью установщика, и теперь сборка Jekyll с DevKit работает нормально.

Спасибо всем, кто указал на это!

Ответы [ 2 ]

5 голосов
/ 04 сентября 2010

Существует путаница с инструкциями, которым вы следуете. Инструкции в RubyInstaller DevKit были созданы для поддержки установки расширений с использованием скомпилированных в RubyInstaller версий Ruby.

Очевидно, из вашего текущего каталога (visual studio) и результатов установки gem, которую вы используете mswin32 на основе Ruby, которая не будет работать с RubyInstaller или DevKit, которые мы документировали.

Пожалуйста, установите Ruby и DevKit с RubyInstaller веб-сайта и следуйте инструкциям там и избегайте смешивания с Visual Studio

1 голос
/ 04 сентября 2010

Откуда это mswin32?Используете ли вы DevKit с MRI-портом mswin32?DevKit предназначен только для текущего порта MinGW MRI и YARV, он не работает с портом mswin32 (который, кстати, уже довольно давно устарел).

Если вы используете порт mswin32,Вы более или менее самостоятельно.В частности, вы должны использовать Microsoft Visual C ++ 6.0, потому что это то, с чем скомпилирован порт mswin32, и более поздние версии Visual C ++ не обязательно будут двоично-совместимыми.Visual C ++ 10.0 (который вы, похоже, используете) не работает.Попробуйте форсировать платформу, явно вызвав gem install --platform=mswin32 fast-stemmer или даже gem install --platform=x86-mswin32-60 fast-stemmer.Таким образом, если сопровождающий предоставил предварительно скомпилированную версию, вам не нужно компилировать ее самостоятельно.

Если вы делаете не , используйте порт mswin32, а скорее порт MinGW,попробуйте явно вызвать gem install --platform=ruby fast-stemmer.И если это не поможет, попробуйте gem install --platform=x86-mingw32 fast-stemmer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...