gpt4 book ai didi

ruby - 安装时的 Eventmachine 问题(安装 Middleman 时)

转载 作者:数据小太阳 更新时间:2023-10-29 07:59:35 25 4
gpt4 key购买 nike

它不是 Eventmachine gem install fail 的副本,这是针对 Windows 的,我在 OSX 10.9.5 和 ruby​​ ruby​​ 2.2.0p0 上运行

在安装 Middleman 之后,我很难安装 Eventmachine。关于如何进行的任何建议?我已经尝试过 sudo gem install eventmachine -v '1.0.3' 和 gem install eventmachine -v 1.0.4 但没有成功。

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

/Users/malditojavi/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20150115-4062-w3t883.rb extconf.rb
checking for rb_trap_immediate in ruby.h,rubysig.h... no
checking for rb_thread_blocking_region()... no
checking for inotify_init() in sys/inotify.h... no
checking for __NR_inotify_init in sys/syscall.h... no
checking for writev() in sys/uio.h... yes
checking for rb_wait_for_single_fd()... yes
checking for rb_enable_interrupt()... no
checking for rb_time_new()... yes
checking for sys/event.h... yes
checking for sys/queue.h... yes
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling binder.cpp
compiling cmain.cpp
compiling ed.cpp
compiling em.cpp
em.cpp:827:9: error: use of undeclared identifier 'rb_thread_select'; did you mean 'rb_thread_fd_select'?
return EmSelect (maxsocket+1, &fdreads, &fdwrites, &fderrors, &tv);
^~~~~~~~
rb_thread_fd_select
./em.h:25:20: note: expanded from macro 'EmSelect'
#define EmSelect rb_thread_select
^
/Users/malditojavi/.rvm/rubies/ruby-2.2.0/include/ruby-2.2.0/ruby/intern.h:454:5: note: 'rb_thread_fd_select' declared here
int rb_thread_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
^
em.cpp:827:32: error: cannot initialize a parameter of type 'rb_fdset_t *' with an rvalue of type 'fd_set *'
return EmSelect (maxsocket+1, &fdreads, &fdwrites, &fderrors, &tv);
^~~~~~~~
/Users/malditojavi/.rvm/rubies/ruby-2.2.0/include/ruby-2.2.0/ruby/intern.h:454:42: note: passing argument to parameter here
int rb_thread_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
^
em.cpp:946:6: error: use of undeclared identifier 'rb_thread_select'; did you mean 'rb_thread_fd_select'?
EmSelect (0, NULL, NULL, NULL, &tv);
^~~~~~~~
rb_thread_fd_select
./em.h:25:20: note: expanded from macro 'EmSelect'
#define EmSelect rb_thread_select
^
/Users/malditojavi/.rvm/rubies/ruby-2.2.0/include/ruby-2.2.0/ruby/intern.h:454:5: note: 'rb_thread_fd_select' declared here
int rb_thread_fd_select(int, rb_fdset_t *, rb_fdset_t *, rb_fdset_t *, struct timeval *);
^
3 errors generated.
make: *** [em.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/malditojavi/.rvm/rubies/ruby-2.2.0/lib/ruby/gems/2.2.0/gems/eventmachine-1.0.3 for inspection.
Results logged to /Users/malditojavi/.rvm/rubies/ruby-2.2.0/lib/ruby/gems/2.2.0/extensions/x86_64-darwin-13/2.2.0/eventmachine-1.0.3/gem_make.out

最佳答案

Eventmachine 1.0.3 和 Ruby 2.2.x 之间存在不兼容性。要修复它,要么

  • 将您的 Ruby 降级到 2.1.2(在您的 Gemfile 顶部添加 ruby '2.1.2')

  • 将您的 Eventmachine gem 升级到 1.0.4

关于ruby - 安装时的 Eventmachine 问题(安装 Middleman 时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27962223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com