Установка родных расширений Ruby в Windows для Jekyll

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

Как, черт возьми, вы устанавливаете 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 Visual Studio 10.0\VC\bin, как это предлагается в другой статье. Но он все еще не работает.

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

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

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

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

Ответ 1

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

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

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

Ответ 2

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

Если вы используете порт mswin32, вы более или менее самостоятельно. В частности, вы должны использовать Microsoft Visual С++ 6.0, потому что то, что скомпилировано с портом mswin32, и более поздние версии Visual С++ не гарантируют совместимость с двоичными файлами. Visual С++ 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