mavericksで"gem install therubyracer -v '0.10.2'" を使ってインストールしようとしていますが、以下のエラーが発生します。
/Users/dennischen/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for main() in -lobjc... yes
creating Makefile
make
compiling rr.cpp
clang: warning: argument unused during compilation: '-rdynamic'
rr.cpp:48:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
1 warning generated.
compiling v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_array.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_callbacks.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_context.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_date.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_debug.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_exception.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_exception.cpp:10:16: warning: unused variable 'stack' [-Wunused-variable]
static void* stack[20];
^
1 warning generated.
compiling v8_external.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_external.cpp:10:9: warning: unused variable 'references' [-Wunused-variable]
VALUE references;
^
1 warning generated.
compiling v8_function.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_handle.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_locker.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_locker.cpp:45:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
v8_locker.cpp:85:5: warning: control reaches end of non-void function [-Wreturn-type]
}
^
2 warnings generated.
compiling v8_message.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_object.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_object.cpp:77:19: warning: unused variable 'proto' [-Wunused-variable]
Handle<Value> proto(rr_rb2v8(prototype));
^
1 warning generated.
compiling v8_script.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_string.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_template.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_try_catch.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_v8.cpp
clang: warning: argument unused during compilation: '-rdynamic'
compiling v8_value.cpp
clang: warning: argument unused during compilation: '-rdynamic'
v8_value.cpp:100:9: warning: unused function 'ToInt32' [-Wunused-function]
VALUE ToInt32(VALUE self) {
^
1 warning generated.
compiling v8_weakref.cpp
clang: warning: argument unused during compilation: '-rdynamic'
linking shared-object v8.bundle
clang: error: no such file or directory: '/Users/dennischen/.rvm/gems/ruby-1.9.3-p194@panini/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'
make: *** [v8.bundle] Error 1
どなたか、このgemを動作させる方法を見つけるのを助けていただけませんか?コマンドラインツールはインストール済みです。
それで、苦労してやっと動くようになったんだ...SimonとAlvaroに感謝するよ。
しかし、1つ付け加えると、--with-system-v8というフラグを使ってもうまくいきませんでした...。というわけで、私のシステムv8を
ブリュー アンインストール v8`
そして
gem install libv8` を実行します。
もし、system v8 フラグを指定して gem install libv8
を実行していた場合は、その gem バージョンをアンインストールしてください (gem uninstall libv8
を実行してください)。重要なのは、brew が提供するものを使ってはいけないということです。これは Mavericks では動作しないようです (うまくインストールされて bundler はバンドルが完了したと報告しますが、v8 を使おうとするとアプリは失敗します)。
brew install apple-gcc42
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp
brew uninstall v8
gem install libv8
gem install therubyracer
私も同じ問題を抱えていました、これは私のために動作します。
therubyracer (0.10.2) & libv8 (3.3.10.4)
まず最初に
gcc
, cpp
, g++
) のバイナリファイルを /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>
にリンクする必要があります。後は、これを試してみてください。
または
bundle install` をrailsプロジェクトのディレクトリにインストールします。私はちょうど同じ問題を抱えていて、一つの解決策は clang の代わりに apple-gcc42 を使って両方の gems をコンパイルすること ** です。
brew install apple-gcc42
そして,{gcc,g++,c++}バイナリのために/usr/binにシンボリックリンクを張るか,という選択があります.
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -s /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp
実際、g++で十分です。
あるいは...CC/CXX/CPP環境変数にhomebrewで作成されたバイナリに対応するパスを書き出すこともできます。その方がきっときれいな回避策になるはずです。
3つ目の解決策は、Xcode 4.6.3をダウンロードし、Applicationsフォルダにインストールすることです。そして、ターミナルで次のように入力します。
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install therubyracer
gemがインストールされたら、Xcode 5.0に戻すことができます。
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer