在Cygwin中安装gem wdm时出错

问题描述 投票:8回答:1

从cygwin内部安装gem wdm时,我不断收到此错误。是否有人有同样的问题,现在知道要解决。谢谢。 (我正在尝试安装Guard gem)

$ gem install wdm
Building native extensions.  This could take a while...
ERROR:  Error installing wdm:
ERROR: Failed to build gem native extension.

    /usr/bin/ruby.exe extconf.rb
checking for main() in -lkernel32... yes
checking for windows.h... yes
checking for ruby.h... yes
checking for HAVE_RUBY_ENCODING_H... yes
creating Makefile

make
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -DHAVE_WINDOWS_H -DHAVE_RUBY_H -DHAVE_CONST_HAVE_RUBY_ENCODING_H    -ggdb -O2 -pipe   -fno-strict-aliasing   -o entry.o -c entry.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -DHAVE_WINDOWS_H -DHAVE_RUBY_H -DHAVE_CONST_HAVE_RUBY_ENCODING_H    -ggdb -O2 -pipe   -fno-strict-aliasing   -o memory.o -c memory.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -DHAVE_WINDOWS_H -DHAVE_RUBY_H -DHAVE_CONST_HAVE_RUBY_ENCODING_H    -ggdb -O2 -pipe   -fno-strict-aliasing   -o monitor.o -c monitor.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -DHAVE_WINDOWS_H -DHAVE_RUBY_H -DHAVE_CONST_HAVE_RUBY_ENCODING_H    -ggdb -O2 -pipe   -fno-strict-aliasing   -o queue.o -c queue.c
gcc -I. -I/usr/include/ruby-1.9.1/i386-cygwin -I/usr/include/ruby-1.9.1/ruby/backward -I/usr/include/ruby-1.9.1 -I. -DHAVE_WINDOWS_H -DHAVE_RUBY_H -DHAVE_CONST_HAVE_RUBY_ENCODING_H    -ggdb -O2 -pipe   -fno-strict-aliasing   -o rb_change.o -c rb_change.c
rb_change.c: In function ‘extract_absolute_path_from_notification’:
rb_change.c:47:16: error: ‘_MAX_FNAME’ undeclared (first use in this function)
rb_change.c:47:16: note: each undeclared identifier is reported only once for each function it appears in
rb_change.c:47:33: error: ‘_MAX_EXT’ undeclared (first use in this function)
Makefile:206: recipe for target `rb_change.o' failed
make: *** [rb_change.o] Error 1

Gem files will remain installed in /usr/lib/ruby/gems/1.9.1/gems/wdm-0.1.0 for inspection.
Results logged to /usr/lib/ruby/gems/1.9.1/gems/wdm-0.1.0/ext/wdm/gem_make.out
ruby gem cygwin guard
1个回答
3
投票

我的一个同事前几天与wdm发生了问题。

我们通过下载Ruby DevKit修复了它(不确定您是否已安装此工具)。

我在网上逐步找到了一些不错的步骤,我将其粘贴到此处-希望对您有所帮助

开发套件在这里:http://rubyinstaller.org/downloads/

  1. 下载开发工具包并将其安装在c:\ devkit中。
  2. 打开命令窗口并键入c:。
  3. 通过键入cd devkit来更改文件夹。
  4. Type ruby dk.rb init生成config.yml文件,以备后用。您已安装的红宝石将在此处列出(目前仅检测到由RubyInstaller软件包安装的红宝石)。只需执行一次。
  5. 最终类型,DevKit的ruby dk.rb install会增强您已安装的红宝石。只需执行一次。

通过运行以下命令确认您的Ruby环境正确使用了DevKit:

gem install wdm --platform=ruby

至关重要的是,您必须包含--platform=ruby选项,以强制RubyGems构建本机gem,而不是可能安装不正确的二进制gem。

© www.soinside.com 2019 - 2024. All rights reserved.