未能在Windows上使用"多个目标模式"安装Jekyll gem原生扩展

Jen*_*der 3 ruby gem makefile jekyll

我正在尝试让Jekyll在我的Windows 7机器上运行,但是安装gem会因make异常而失败.我基本上遵循Madhur Arhuja提供说明以及一些看似错误链接的"修复".这是我做的:

下载并安装了ruby 1.9.3 p448

从同一页面下载并解压缩RubyDevelopmentKit.

在我运行开发工具包的目录中的Git Bash中,我运行了

ruby dk.rb init
ruby dk.rb install
gem install jekyll
Run Code Online (Sandbox Code Playgroud)

前两个步骤运行正常.我得到了一些Info输出,没有错误.但最后一步创造了这个:

$ gem install jekyll
Fetching: liquid-2.5.1.gem (100%)
Fetching: fast-stemmer-1.0.2.gem (100%)
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:/Program Files/Ruby193/bin/ruby.exe" extconf.rb
creating Makefile

make
Makefile:222: *** multiple target patterns.  Stop.


Gem files will remain installed in c:/Program Files/Ruby193/lib/ruby/gems/1.9.1/gems/fast-stemmer-1.0.2 for inspection.
Results logged to c:/Program Files/Ruby193/lib/ruby/gems/1.9.1/gems/fast-stemmer-1.0.2/ext/gem_make.out
Run Code Online (Sandbox Code Playgroud)

非常简单的应用程序中,Eclipse的"多个目标模式"失败了,我发现这可能与unix模拟器有关,所以我在windows shell中再次运行了最后一个命令,但结果相同.

因为我不知道红宝石,c,制作或任何涉及的东西我完全卡住了:-(

mei*_*ier 5

好的,试一试.此行(及以下)上的Makefile定义了目标.m.o.

$(Q) $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) $(COUTFLAG)$@ -c $<
Run Code Online (Sandbox Code Playgroud)

如果您正在使用mingw/cygwin,一切看起来都不错,但如果您在带有空格的目录中安装了ruby,则INCFLAGS会在窗口机器上出现问题.INCFLAG定义为INCFLAGS = -I. -I$(arch_hdrdir) -I$(hdrdir)/ruby/backward -I$(hdrdir) -I$(srcdir),如果您在下面看到我的定义,则任何路径中都没有空格.

topdir = /C/Ruby200-x64/include/ruby-2.0.0
hdrdir = $(topdir)
arch_hdrdir = C:/Ruby200-x64/include/ruby-2.0.0/x64-mingw32
Run Code Online (Sandbox Code Playgroud)

如果我将ruby安装更改为包含空格的路径,则在本机Windows命令行和mingw会话中会出现无效选项错误.也许这可能有所帮助.

  • 除了带有空格的部分,我什么都不懂。我会尝试的8) (2认同)