Mencoba menginstal therubyracer pada mavericks menggunakan "gem install therubyracer -v '0.10.2'" tetapi saya mendapatkan kesalahan 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
Adakah yang bisa membantu saya mencari cara agar permata ini berfungsi? Saya telah menginstal alat baris perintah.
ruby-on-rails
macos
gem
therubyracer
osx-mavericks
pengguna2711889
sumber
sumber
homebrew
? Coba instal v8 menggunakanbrew install v8
sebelum menginstal permataJawaban:
Jika Anda memutuskan untuk menggunakan
therubyracer
versi permata yang lebih baru , Anda tidak akan lagi mengalami masalah iniJika 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
sumber
brew tap homebrew/dupes
memperbaiki "Kesalahan: Tidak ada formula yang tersedia untuk apple-gcc42"Jadi saya akhirnya berhasil setelah beberapa kesulitan ... terima kasih kepada Simon dan Alvaro.
Saya memiliki satu hal untuk ditambahkan, menggunakan flag --with-system-v8 tidak berfungsi untuk saya ... Jadi saya menghapus sistem v8 saya dengan
brew uninstall v8
Dan lari
gem install libv8
Jika Anda sudah menjalankan
gem install libv8
dengan flag system v8 pastikan untuk menghapus versi gem itu (lakukan dengan menjalankangem uninstall libv8
). Yang penting adalah Anda tidak boleh menggunakan yang disediakan oleh brew, tampaknya tidak berfungsi di Mavericks (terinstal dengan baik dan bundler akan melaporkan bahwa bundel Anda telah selesai, tetapi aplikasi Anda akan gagal ketika mencoba menggunakan v8 ).Untuk meringkas jawabannya, melakukan hal berikut ini berhasil bagi saya:
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
sumber
brew update
yang datang dan mengubah jalan itu akan membuat Anda dalam keadaan rusak.Saya memiliki masalah yang sama, ini berhasil untuk saya:
Pertama-tama:
brew install apple-gcc42
gcc
,cpp
,g++
) ke/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>
Setelah itu, Anda bisa mencoba ini:
brew install v8
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v 'therubyracer'
ataubundle install
ke dalam direktori proyek rel.sumber
apple-gcc42: This formula either does not compile or function as expected on macOS
MacOS saya adalah 10.12.6Saya baru saja mengalami masalah yang sama dan satu solusi saat ini adalah menggunakan apple-gcc42 alih - alih 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
Faktanya, g ++ seharusnya cukup.
Atau ... Anda dapat mengekspor variabel lingkungan CC / CXX / CPP dengan jalur yang sesuai dengan biner yang dibuat oleh homebrew. Itu pasti solusi yang lebih bersih.
Solusi ketiga adalah mengunduh Xcode 4.6.3 dan menginstalnya di folder Aplikasi . Kemudian, masuk ke terminal:
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer gem install therubyracer
Setelah permata dipasang, Anda dapat beralih kembali ke Xcode 5.0:
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sumber
Saya menemukan solusi yang berfungsi tanpa menginstal apple-gcc42.
Ini akan berfungsi jika pesan kesalahan yang Anda dapatkan 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 bisa 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
sumber
ln -s /usr/local/Cellar/v8/3.21.17/lib/libv8_base.x64.a ~/.rvm/gems/ruby-1.9.3-p327/gems/libv8-3.3.10.4/lib/libv8/build/v8/libv8.a
Seperti yang disarankan dalam banyak jawaban, hal termudah untuk dilakukan adalah mengkompilasi ekstensi asli Ruby Racer dengan Apple GCC 4.2 (bukan versi yang diinstal dengan Xcode).
Jika Anda menggunakan MacPorts, Anda tidak perlu berurusan secara manual dengan pengaturan tautan simbolik untuk binari GCC. The
port select
perintah melakukannya untuk Anda. Jika Anda belum memperbarui MacPorts sejak menginstal Mavericks, lakukansudo 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 select gcc [version]
) akan berfungsi kapan pun Anda ingin menggunakan versi GCC tertentu, bukan yang diinstal oleh Xcode (Apple LLVM v5 untuk 10.9 Mavericks / Xcode 5).sumber
Saya berhasil menginstal therubyracer 0.12 dan libv8 3.16.14.3 di 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 gcc nanti
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
bundle
sebagai penggantigem install therubyracer
sumber
bundle install
hari-hari trial and error. Satu-satunya hal yang saya lakukan secara berbeda adalah mencopot semua alat pengembang yang diinstal olehbrew
sampaigcc --version
dilaporkan bahwa itu adalah versi Apple LLVM dan dikonfigurasi dengan Xcode, lalu saya memindahkan yang ada/usr/bin/gcc
(et. Al.) Keluar sebelum menghubungkan ke apple-gcc42 libs, lalu alih-alih menginstal gcc49 (terakhir kali saya mencoba mengambil alih untuk mengkonfigurasi) saya hanya menyalin kembali gcc, g ++, dan cpp asli yang asli. Mengingat bahwa saya mencoba 3 lusin cara berbeda untuk menemukan salah satu yang bekerja untuk saya, YMMVIni harus menjadi cara yang aman dan bersih dari kegagalan (tanpa symlink) untuk menginstal subyracer bagi siapa pun yang mengalami masalah.
Diambil dari: gem install therubyracer -v 0.11.4 gagal di OS X 10.10
instal Xcode (jika Anda belum memiliki salah satu dari versi ini) 6.1.1, 6.2-beta atau 6.3-beta dan (yang ini diperlukan) 4.6.3
gem uninstall libv8
jika Anda belum melakukannyaberalih ke Xcode 4.6.3
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install libv8 -v '3.11.8.17'
Atau versi mana pun yang terkait dengan versi subyracer Andaberalih ke Xcode 6.1.1, 6.2-beta atau 6.3-beta (atau jika Anda ingin mencoba menginstal Xcode Anda saat ini, sesuaikan baris ini, saya telah mengonfirmasi semua 3 pekerjaan ini)
sudo xcode-select --switch /Applications/Xcode6.1.1.app/Contents/Developer
gem install therubyracer -v '0.11.4'
atau versi yang Anda coba pasang.sumber
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
dan kemudian menjalankangem install libv8 -v '3.3.10.4'
saya mendapatkan:unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!
Apa yang saya lakukan secara tidak benar?Saya mengalami kesalahan yang hampir identik ketika mencoba menginstal therubyracer 0.12.0 agar dapat berfungsi dengan libv8. Ini berhasil 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
sumber
Saya mengalami masalah yang sama ketika saya memutakhirkan dari OSX Mountain Lion ke OSX Mavericks.
Mengupgrade dari ruby-1.8.7-p354 ke ruby-1.8.7-375 berhasil bagi saya.
Mungkin coba upgrade dari ruby 1.9.3-p194 ke 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
sumber
Saya mengalami masalah ini setelah meningkatkan dari Mavericks ke Yosemite. Masalahnya adalah saya mengkompilasi versi Ruby saya dengan versi OSX yang lama.
Jika saya lari
ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)'
Saya akan mendapatkan
x86_64-darwin-13
alih-alihx86_64-darwin-14
untuk Yosemite.Untuk menginstal ulang Ruby I
rvm remove ruby-2.1.1
rvm reinstall --disable-binary 2.1
Kemudian saya dapat menjalankan
bundle install
tanpa kesalahan setelah mencoba semua solusi di atas.sumber
Apa yang saya lakukan adalah pada osx mavericks:
git clone [email protected]:cowboyd/therubyracer.git
Kemudian:
gem build therubyracer.gemspec gem install therubyracer-0.12.1.gem
Prosedur ini mengunduh versi biner libv8 dan menginstalnya.
sumber