0

我在使用 rvm 安装 Rails 4 时遇到问题。我看到了另一个从我的系统中删除 rvm 的解决方案,但这不是一个选项,因为我需要隔离的 gemset。这是我的终端:

    Edmunds-MacBook-Pro:pipetask edmundmai$ rvm current
    ruby-2.0.0-p247@pipetask
    Edmunds-MacBook-Pro:pipetask edmundmai$ ls
    Gemfile     README.rdoc app     config      db      lib     public
    Gemfile.lock    Rakefile    bin     config.ru   gcc-4.2     log     vendor
    Edmunds-MacBook-Pro:pipetask edmundmai$ gem install rails -v=4.0.0
    Building native extensions.  This could take a while...
    ERROR:  Error installing rails:
        ERROR: Failed to build gem native extension.

        /Users/edmundmai/.rvm/rubies/ruby-2.0.0-p247/bin/ruby extconf.rb
    *** 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=/Users/edmundmai/.rvm/rubies/ruby-2.0.0-p247/bin/ruby
        --with-atomic_reference-dir
        --without-atomic_reference-dir
        --with-atomic_reference-include
        --without-atomic_reference-include=${atomic_reference-dir}/include
        --with-atomic_reference-lib
        --without-atomic_reference-lib=${atomic_reference-dir}/
    /Users/edmundmai/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:434:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
    You have to install development tools first.
        from /Users/edmundmai/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:519:in `try_link0'
        from /Users/edmundmai/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/mkmf.rb:817:in `try_run'
        from extconf.rb:26:in `<main>'


    Gem files will remain installed in /Users/edmundmai/.rvm/gems/ruby-2.0.0-p247@pipetask/gems/atomic-1.1.14 for inspection.
    Results logged to /Users/edmundmai/.rvm/gems/ruby-2.0.0-p247@pipetask/gems/atomic-1.1.14/ext/gem_make.out
    Edmunds-MacBook-Pro:pipetask edmundmai$ 

我将如何调试这个?我什至不知道mkmf.log它在说什么,当我这样做时,我有 50 个locate mkmf.log。什么是开发工具?我有 xcode 5 和命令行工具。

==更新

这可能是它所指的 mkmf.log 文件?

    Edmunds-MacBook-Pro:bin edmundmai$ more /Users/emai/mkmf.log
    have_func: checking for rb_hash_foreach()... -------------------- yes

    "clang -o conftest -I/Users/emai/.rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0/x86_64-darwin11.4.2 -I/Users/emai/.rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0/ruby/backward -I/Users/emai/.rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -I/Users/emai/.rvm/usr/include -I/Users/emai/.rvm/usr/include    -O3 -g3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -pipe conftest.c  -L. -L/Users/emai/.rvm/rubies/ruby-2.0.0-p0/lib -L/Users/emai/.rvm/usr/lib -L. -fstack-protector -L/Users/emai/.rvm/usr/lib -L/Users/emai/.rvm/usr/lib      -lruby-static  -lpthread -ldl -lobjc "
    checked program was:
    /* begin */
    1: #include "ruby.h"
    2: 
    3: int main(void) {return 0;}
    /* end */

    "clang -o conftest -I/Users/emai/.rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0/x86_64-darwin11.4.2 -I/Users/emai/.rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0/ruby/backward -I/Users/emai/.rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT -I/Users/emai/.rvm/usr/include -I/Users/emai/.rvm/usr/include    -O3 -g3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration  -pipe conftest.c  -L. -L/Users/emai/.rvm/rubies/ruby-2.0.0-p0/lib -L/Users/emai/.rvm/usr/lib -L. -fstack-protector -L/Users/emai/.rvm/usr/lib -L/Users/emai/.rvm/usr/lib      -lruby-static  -lpthread -ldl -lobjc "
    checked program was:
    /* begin */
    1: #include "ruby.h"
    2: 
    3: /*top*/
    4: int main(void) {return 0;}
    5: extern int t(void);
    6: int t(void) { void ((*volatile p)()); p = (void ((*)()))rb_hash_foreach; return 0; }
    /* end */

    --------------------
4

0 回答 0