繁体   English   中英

在Windows系统上安装'wdm'gem时出错

[英]Error installed 'wdm' gem on Windows system

我在Windows 7系统上全新安装了Ruby 2.2.1(32位)。 我还安装了devkit而没有任何报告错误。 当然我以为我可以安装'wdm'宝石:

gem install wdm

但是,它出错了。 整个输出有点多发布整个事情所以截断了以下几点。

C:/Ruby22/bin/ruby.exe -r ./siteconf20150318-1712-oq5nlb.rb 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 "DESTDIR=" clean

make "DESTDIR="
generating wdm_ext-i386-mingw32.def
compiling entry.c
In file included from entry.c:1:0:
wdm.h:3:0: warning: "WINVER" redefined [enabled by default]
...
wdm.h:4:0: warning: "_WIN32_WINNT" redefined [enabled by default]
...
warning: #warning Please include winsock2.h before windows.h [-Wcpp]
compiling monitor.c  (this is repeated for multiple *.c files)
...
rb_monitor.o: In function `rb_monitor_run_bang':
C:\Ruby22\lib\ruby\gems\2.2.0\gems\wdm-0.1.0\ext\wdm/rb_monitor.c:508: undefined reference to `rb_thread_blocking_region'
collect2.exe: error: ld returned 1 exit status
make: *** [wdm_ext.so] Error 1

make failed, exit code 2

我错过了什么?

wdm gem与2.2不兼容。 它调用函数rb_thread_blocking_region() ,该函数在2.0中已弃用,最后在2.2中删除 此外,gem不再维护(请参阅其存储库和问题跟踪器 )。

您可以分叉回购,合并显然解决问题的现有PR ,并自己构建gem。 使用较旧的Ruby版本也是一种解决方案。

更新: wdm gem之前更新为0.1.1 该版本修复了该错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM