5

我到处寻找我能找到的地方,但似乎找不到解决方案。

我在 Lion 10.8.2 上使用 Xcode 4.5.1,并试图bundle为 Rails 项目运行,但它一直卡在这个问题上。我正在为 Heroku 使用 Thin gem。

Bolanos@Jeremys-Mac-mini ⦿-1.9.3 fishfarm $ sudo gem install eventmachine
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing eventmachine:
    ERROR: Failed to build gem native extension.

        /Users/Bolanos/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
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
make: g++-4.2: No such file or directory
make: *** [binder.o] Error 1


Gem files will remain installed in /Users/Bolanos/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/eventmachine-1.0.0 for inspection.
Results logged to /Users/Bolanos/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/eventmachine-1.0.0/ext/gem_make.out

现在我不得不做没有瘦。有没有人有办法解决吗?

4

5 回答 5

13

还要检查符号链接:

$ sudo ln -s /usr/bin/g++ /usr/bin/g++-4.2
于 2013-02-20T00:51:17.590 回答
3

您必须从developer.apple.com安装命令行工具包。

我也遇到了 MacOSX10.6.sdk 的问题,因为那里缺少一些头文件,所以我安装了 MacOSX10.5.sdk 并且一切正常。

于 2012-10-16T07:07:16.530 回答
2

我遇到了确切的错误,为丢失的资源创建一个新的符号链接对/usr/bin/g++-4.2我有用。

在我的设置中,我指向了地窖中的位置:

/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2
于 2013-03-03T03:23:06.727 回答
1

如果以上都不适合你,我做了

sudo ln -s /usr/bin/llvm-g++-4.2 /usr/bin/g++-4.2

它就像一个魅力。运行 OS X 10.8.2。

于 2013-02-27T19:42:29.337 回答
1

你应该同时拥有:

  1. Xcode 命令行工具:详细安装说明在“如何安装 Xcode 命令行工具”中。

  2. Apple-gcc* 编译器:我应该提到使用 gcc48 和 gcc49 编译失败。因此,安装 apple-gcc42(如果你没有)并通过MacPorts选择编译器将解决问题。您可以使用以下命令查看已安装的 gcc 版本:

    端口选择--list gcc

您应该会看到类似这样的内容,其中“ mp-”代表 MacPorts 自己的端口:

Available versions for gcc:
         apple-gcc42 (active)
         current_saved
         mp-gcc48
         mp-gcc49

如果您没有“apple-gcc*”,您可以通过以下方式安装它:

port install apple-gcc42

之后选择编译器:

port select --set gcc apple-gcc42

现在你可以运行:

 gem install eventmachine

这应该可以解决在 OSX 上构建 gem 原生扩展时出现的错误问题。

于 2014-09-07T20:15:58.697 回答