11

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

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

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

我在 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 工作正常。

感谢大家指出这一点!

4

2 回答 2

6

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

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

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

于 2010-09-04T01:14:00.390 回答
1

mswin32是从哪里来的?您是否将 DevKit 与 MRI 的 mswin32 端口一起使用?DevKit 仅适用于当前的 MRI 和 YARV 的 MinGW 端口,它不适用于 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

于 2010-09-04T00:50:57.870 回答