EventMachine:无法构建gem原生扩展

时间:2013-06-05 10:32:18

标签: ruby-on-rails ruby gcc bundler eventmachine

我正在尝试安装eventmachine:

sudo gem install eventmachine

...

Building native extensions.  This could take a while...
/Users/kuankuan/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/rubygems/ext/builder.rb:48: warning: Insecure world writable dir /usr/local/bin/g4bin in PATH, mode 040777
ERROR:  Error installing eventmachine:
    ERROR: Failed to build gem native extension.

        /Users/kuankuan/.rvm/rubies/ruby-1.9.3-p327/bin/ruby extconf.rb
/Users/kuankuan/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/mkmf.rb:1344: warning: Insecure world writable dir /usr/local/bin/g4bin in PATH, mode 040777
checking for rb_trap_immediate in ruby.h,rubysig.h... no
checking for rb_thread_blocking_region()... yes
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_thread_check_ints()... yes
checking for rb_time_new()... yes
checking for sys/event.h... yes
checking for sys/queue.h... yes
creating Makefile

make
compiling binder.cpp
cc1plus: error: unrecognized command line option "-arch"
make: *** [binder.o] Error 1

平台:

Mac OSX 10.8.3
Ruby 1.9.3p327 (2012-11-10) [x86_64-darwin12.2.0]

cc --version

Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix

gcc --version

gcc (MacPorts gcc44 4.4.7_6) 4.4.7
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

g ++ --version

g++ (MacPorts gcc44 4.4.7_6) 4.4.7
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

命令行工具

enter image description here

并且,我试图更改bundle的配置:

sudo bundle config build.eventmachine --with-cflags=\"-O2 -pipe -march=native -w\"    

1 个答案:

答案 0 :(得分:0)

好吧,您似乎需要从bin目录中删除write权限:

chmod 755 /usr/local/bin/g4bin

这意味着除非你是root,否则你将无法写入该目录,但你不应该这样做

关于无法识别的“-arch”选项,我认为它是一种苹果gcc扩展,因此您可能需要使用apple提供的某些特定gcc