Mencoba untuk menginstal therubyracer mavericks menggunakan "gem install therubyracer -v '0.10.2'" tetapi saya mendapatkan error berikut:
/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
siapapun dapat membantu saya mencari tahu bagaimana untuk mendapatkan permata ini untuk bekerja? Saya memiliki baris perintah alat yang dipasang.
Jika anda memutuskan untuk menggunakan baru therubyracer
gem versi, anda tidak akan lagi memiliki masalah ini
Jika tidak:
brew tap homebrew/dupes # Thanks Tom
brew install apple-gcc42
export CC=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2
export CXX=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2
export CPP=/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2
brew uninstall v8
gem uninstall libv8
gem install therubyracer -v '0.10.2' # specify version
Jadi saya akhirnya mendapatkannya bekerja setelah beberapa berjuang... terima kasih kepada Simon dan Alvaro.
Saya memiliki satu hal untuk menambahkan meskipun, menggunakan bendera-dengan-sistem-v8 tidak bekerja untuk saya... Jadi saya dihapus saya sistem v8 dengan
minuman uninstall v8
Dan jalankan
gem install libv8
Jika anda sudah menjalankan gem install libv8
dengan sistem v8 bendera pastikan untuk uninstall permata itu versi (melakukan ini dengan menjalankan permata uninstall libv8
). Yang penting adalah bahwa anda tidak't menggunakan salah satu yang ditawarkan oleh minuman, hal itu tampaknya tidak bekerja di Mavericks (terinstal dengan baik dan bundler akan melaporkan bahwa berkas anda sudah lengkap, tapi aplikasi anda akan gagal ketika mencoba untuk menggunakan 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
Aku punya masalah yang sama, ini bekerja untuk saya:
therubyracer (0.10.2) & libv8 (3.3.10.4)
Pertama-tama:
brew install apple-gcc42
gcc
, cpp
, g++
) ke /usr/local/Gudang/apple-gcc42/4.2.1-5666.3/bin/<compiler>
Setelah itu, anda bisa coba ini:
brew install v8
gem install libv8 -v '3.3.10.4' -- --dengan-sistem-v8
gem install therubyracer -v 'therubyracer'
atau bundle install
ke direktori proyek rel.Aku punya masalah yang sama dan salah satu solusinya adalah saat ini menggunakan apple-gcc42 bukan dentang untuk mengkompilasi kedua permata :
brew install apple-gcc42
Dan kemudian anda memiliki pilihan antara melakukan beberapa symlink di /usr/bin untuk {gcc,g++,c++} binari :
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
Pada kenyataannya g++ harus cukup.
Atau...anda bisa mengekspor CC/CXX/CPP variabel lingkungan dengan jalur yang sesuai untuk biner yang dibuat oleh homebrew. Yang's pasti cleaner solusi.
Solusi ketiga adalah untuk men-download Xcode 4.6.3 dan menginstalnya di Aplikasi folder. Kemudian, masukkan di terminal:
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install therubyracer
Setelah gem telah terinstal, anda dapat beralih kembali ke Xcode 5.0 :
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Saya menemukan solusi yang bekerja tanpa menginstal apple-gcc42.
Ini akan bekerja jika pesan kesalahan yang anda're semakin terlihat seperti ini:
clang: error: no such file or directory: '/Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a'
Maka anda harus mampu melakukan hal berikut:
brew install v8
bundle install
# after failing create link from brew installed v8 to error location
ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a /Users/mscottford/.rbenv/versions/1.9.3-p327/lib/ruby/gems/1.9.1/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
bundle install
Sumber: https://github.com/cowboyd/therubyracer/issues/277#issuecomment-27734348
Saya berhasil menginstal therubyracer 0.12 dan libv8 3.16.14.3 pada ruby 2.0.0p353 dan os x 10.9
libv8 membutuhkan gcc42
brew install v8
brew install apple-gcc42
sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/gcc-4.2 /usr/bin/gcc
sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/g++-4.2 /usr/bin/g++
sudo ln -sf /usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/cpp-4.2 /usr/bin/cpp
gem install libv8
therubyracer membutuhkan nanti gcc
brew install gcc49
sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/gcc-4.9 /usr/bin/gcc
sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/g++-4.9 /usr/bin/g++
sudo ln -sf /usr/local/Cellar/gcc49/4.9-20131110/bin/cpp-4.9 /usr/bin/cpp
Gemfile
gem 'therubyracer', :require => 'v8', :platforms => :ruby
gunakan bundel
bukan gem install therubyracer
Seperti yang disarankan dalam banyak jawaban, hal termudah untuk melakukannya adalah untuk mengkompilasi Ruby Pembalap asli ekstensi dengan Apple GCC 4.2 (bukan versi yang diinstal dengan Xcode).
Jika anda're menggunakan MacPorts seharusnya kau't harus secara manual bergerak dengan menyiapkan tautan simbolis untuk GCC binari. The port pilih perintah
melakukannya untuk anda. Jika anda belum't diperbarui MacPorts sejak menginstal Mavericks, melakukan sudo port selfupdate
. Dengan MacPorts up-to-date, coba yang berikut ini:
# If you don't have it, install the port for Apple's GCC 4.2
sudo port install apple-gcc42
# OR
# If you had apple-gcc42 already (before Mavericks), update it
sudo port upgrade apple-gcc42
# Same result as manual symlinking of GCC in other answers
sudo port select gcc apple-gcc42 && hash -r
# Install therubyracer, will install libv8 gem dependency
# *note* if you have any existing versions of these gems, remove them
gem install therubyracer
# Restore GCC to system default (optional)
sudo port select gcc none && hash -r
Secara umum prosedur ini (sudo port pilih gcc [versi]
) akan bekerja setiap kali anda ingin menggunakan spesifik GCC versi bukan satu dipasang oleh Xcode (Apple LLVM v5 untuk 10.9 Mavericks/Xcode 5).
Ini harus diperhitungkan dan cara yang bersih (tidak ada symlink) untuk menginstal therubyracer bagi siapa saja yang mengalami kesulitan.
Diambil dari: https://stackoverflow.com/questions/27747066/gem-install-therubyracer-v-0-11-4-fails-on-os-x-10-10
install Xcode (jika anda don't sudah memiliki salah satu versi ini) 6.1.1, 6.2-beta atau 6.3-beta dan (yang satu ini diperlukan) 4.6.3
permata uninstall libv8
jika anda ingin't sudah dilakukan sehingga
beralih ke Xcode 4.6.3
sudo xcode-pilih --switch /Aplikasi/Xcode4.6.3.app/Contents/Pengembang
gem install libv8 -v '3.11.8.17'
Atau mana versi yang terikat ke versi therubyracer
beralih ke Xcode 6.1.1, 6.2-beta atau 6.3-beta (atau jika anda ingin mencoba anda saat ini install Xcode, menyesuaikan garis ini, saya've menegaskan semua 3 ini bekerja)
sudo xcode-pilih --switch /Aplikasi/Xcode6.1.1.app/Contents/Pengembang
gem install therubyracer -v '0.11.4'
atau versi yang anda're mencoba untuk menginstal.
Saya punya hampir identik kesalahan ketika mencoba untuk menginstal therubyracer 0.12.0 untuk mendapatkan itu untuk bekerja dengan libv8. Ini bekerja untuk saya:
$ brew upgrade gcc
$ gem uninstall therubyracer
$ gem uninstall libv8
$ gem install therubyracer -v '0.12.0'
Fetching: therubyracer-0.12.0.gem (100%)
Building native extensions. This could take a while...
Successfully installed therubyracer-0.12.0
1 gem installed
$ gem install libv8 -v '3.16.14.3' -- --with-system-v8
Fetching: libv8-3.16.14.3.gem (100%)
Building native extensions with: '--with-system-v8'
This could take a while...
Successfully installed libv8-3.16.14.3
1 gem installed
Aku punya masalah ini setelah melakukan upgrade dari Mavericks ke Yosemite. Masalah adalah bahwa saya dihimpun saya Ruby versi dengan versi lama dari OSX.
Jika aku berlari
ruby -rubygems -e 'menempatkan Permata::Platform.baru(RUBY_PLATFORM)'
Saya akan mendapatkan x86_64-darwin-13
bukan x86_64-darwin-14
untuk Yosemite.
Untuk re-install Ruby saya
rvm menghapus ruby-2.1.1
rvm instal ulang --disable-biner 2.1
Kemudian saya mampu untuk menjalankan bundle install
dengan tidak ada kesalahan setelah mencoba semua solusi di atas.
Aku punya masalah yang sama ketika saya upgrade dari OSX Mountain Lion ke OSX Mavericks.
Upgrade dari ruby 1.8.7-p354 untuk ruby 1.8.7-375 melakukan trik untuk saya.
Mungkin coba upgrade dari ruby 1.9.3-p194 untuk rc1 (1.9.3 di atas p484 sekarang)
dengan asumsi anda menggunakan rbenv:
rbenv install 1.9.3-rc1
rbenv rehash
rbenv global 1.9.3-rc1
bundle install