在Windows上为Jekyll安装本机Ruby扩展

我快要疯了,所以我只想问:

你到底如何在Windows上安装Ruby Gem Jekyll。

Jekyll依赖于fast-stemmer-1.0.0,并且必须构建为本机扩展

我在RubyDevKit上找到了这个方便的指南来在Windows上安装一个“理智”的环境并且它可以工作,但是快速干扰器仍然倾向于使用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 

我在C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ VC \ bin中使用Visual Studio 2010附带的nmake,正如其他文章中所建议的那样。 但它仍然无效。

我已经尝试从DevKit附带的MSYS shell运行gem安装,所以我确实有Unix make,但我不知道如何指示Ruby使用make代替nmake(并阅读mkmf。 rb也没有启发我)。 它一直在使用nmake,并且因上述错误消息而失败

任何有关这方面的帮助将不胜感激!

更新我终于意识到我没有通过RubyInstaller.org安装Ruby。 我重新安装使用安装程序,现在使用DevKit构建jekyll工作正常。

感谢大家指出这一点!

您遵循的说明存在混淆。 创建RubyInstaller DevKit的指令是为了支持使用RubyInstaller编译版本的Ruby安装扩展。

很明显,从您当前的目录(visual studio)和gem安装的输出您使用基于mswin32的Ruby,它不适用于RubyInstaller或我们记录的DevKit。

请从RubyInstaller网站安装Ruby和DevKit,并按照其中的说明操作,避免与Visual Studio混合使用

mswin32来自哪里? 您是否将DevKit与MRI的mswin32端口一起使用? DevKit仅适用于MRI和YARV的当前MinGW端口,它不适用于mswin32端口(BTW,已经过时很长一段时间了)。

如果你使用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