2012-10-02 9 views
7

私はターミナルを初めて使いました。 (この特定の順序で)成功し、次のインストールの完了:Railsをインストールするときに「gemネイティブ拡張をビルドできませんでした」

  • のXcode 4.5
  • RVM 1.16は
  • GCC 4.2.1
  • は、Ruby 1.9.3は

のRailsをインストールしようとすると(「gem install rails」)インストールが開始されますが、「Gemネイティブ拡張をビルドできませんでした」というエラーが発生して中断されます。これが何を指しているのか分かりません。アイデア?あらかじめインストールする必要があるものは何ですか?
Railsをインストールする私の最初の試みで、誤ってsudoで実行しました。これは何かに影響しますか?

編集:そして、出力 -

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

     /Users/staffanestberg/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb 
creating Makefile 

make 
compiling generator.c 
make: /usr/bin/gcc-4.2: No such file or directory 
make: *** [generator.o] Error 1 

Gem files will remain installed in /Users/staffanestberg/.rvm/gems/ruby-1.9.3-p194/gems/json-1.7.5 for inspection. 
Results logged to /Users/staffanestberg/.rvm/gems/ruby-1.9.3-p194/gems/json-1.7.5/ext/json/ext/generator/gem_make.out 


編集:iouriの提案を使用して解決しました。あなたはXcodeのためのコマンドラインツールは最初、Xcodeの>設定>ダウンロード>コンポーネントがインストールされていることを確認し、正しいコンパイラのシンボリックリンクを作成し、その後.bash-プロファイルに

sudo ln -sf /usr/bin/llvm-gcc-4.2 /usr/bin/gcc-4.2 
+0

あなたがビルド出力の関連部分を投稿することができますか? –

+0

もちろん、更新された記事を参照してください。 –

+1

これはちょっと変わった。ちょうど私のMacで最新のXCodeをチェックしたところ、gccは/usr/bin/gcc-4.2ではなく/ usr/bin/gccだ。悲しいかな、私は設定がどこからgcc-4.2を得るのか分かりません。そして、いいえ、私はあなたがインストール中にそれを変更することができるのか分かりません。しかし、gemをビルドしようとする前に、CC環境変数を設定することで、設定されたコンパイラをオーバーライドすることができます。 –

答えて

8

export CC=gccを追加します。次に、あなたのホームフォルダ~/.bash_profileであなたの.bash_profileファイルに次の行を追加します。

export CC=gcc 
あなたは/ usr/binにgccの(おそらくシンボリックリンク)(最も可能性が高い)を持っており、それが指している

ダブルチェック有効なgccコンパイラ、例:gcc -> llvm-gcc-4.2

この変更を有効にするには、端末を再起動する必要があります。

+0

ありがとう!それはまさに私が必要としたものであることが判明しました。最新の記事を参照してください。 –

+0

私はbash_profileに触れる必要はありませんでした。ちょうどタイプ 'xcode-select --install' はそれを修正したようです。 [MavericksでRailsをインストールする際のStackoverflowスレッド](http://stackoverflow.com/questions/19580685/installing-rails-on-mavericks)が役に立ちました。 –

5

RubyはLLVMのコンパイルには完全に対応していません。これにはclangが含まれていますが、少なくとも1つの既知のFibersがありますが、LLVMのバージョンによってはその他の問題が発生することがあります。

それを修正するための正しい方法はgcc-4.2あり、それのために多くの方法があり、最高のものは、要件に記述されている得ることです:

rvm get stable 
rvm reload 
rvm requirements run 
rvm reinstall 1.9.3 
関連する問題