Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/lib/ruby/gems/2.2.0/gems/hiredis-0.5.2/ext/hiredis_ext
C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/bin/ruby.exe -r ./siteconf20151222-4124-nisefq.rb extconf.rb
gcc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -g -ggdb net.c
net.c:1:0: warning: -fPIC ignored for target (all code is position independent) [enabled by default]
net.c:35:24: fatal error: sys/socket.h: No such file or directory
compilation terminated.
make: *** [net.o] Error 1
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers. Check the mkmf.log file for more details. You may
need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/bin/$(RUBY_BASE_NAME)
extconf.rb:25:in `block in <main>': Building hiredis failed (RuntimeError)
from extconf.rb:23:in `chdir'
from extconf.rb:23:in `<main>'
extconf failed, exit code 1
Gem files will remain installed in C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/lib/ruby/gems/2.2.0/gems/hiredis-0.5.2 for inspection.
Results logged to C:/Dev/Dependencies/Ruby/ruby-2.2.3-x64-mingw32/lib/ruby/gems/2.2.0/extensions/x64-mingw32/2.2.0/hiredis-0.5.2/gem_make.out
An error occurred while installing hiredis (0.5.2), and Bundler cannot continue.
Make sure that `gem install hiredis -v '0.5.2'` succeeds before bundling.人们说Windows不受支持,但extconf.rb有一个mswin option...
我该怎么做你有什么建议吗?
发布于 2016-01-03 20:58:48
坏消息:
hiredis目前不能在Windows上工作,Windows特定的代码只是样板代码。尽管已经完成了一些工作,也有一些pull请求(#52似乎是最相关的),但看起来这是一项艰巨的任务。
不幸的是,即使是拉取请求也需要使用Visual Studio (而不是MinGW)进行编译,因此在将来,二进制文件必须与hiredis Ruby gem捆绑在一起。此外,维护人员需要维护人员的长期承诺,才能使其与Windows兼容。
总而言之,看起来短期内不太可能在Windows上安装hiredis。
好消息:
hiredis gem是Ruby version of the Redis client的高性能替代。如果无法加载,则会自动使用较慢的实现。您所要做的就是强制安装hiredis gem以满足gem依赖项。
在失败的gem install hiredis调用之后,您可以按照in the gem install documentation的说明手动编写gem规范
例如,在lib\ruby\gems\2.2.0中,您可以运行:
gem spec cache\hiredis-0.5.2.gem --ruby > specifications\hiredis-0.5.2.gemspec当启动一个Rails 5应用程序时,你会得到一个警告,但除此之外,它应该可以工作。
https://stackoverflow.com/questions/34415296
复制相似问题