Essayer d'installer therubyracer sur des non-conformistes en utilisant "gem install therubyracer -v '0.10.2'" mais j'obtiens l'erreur suivante:
/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
quelqu'un peut-il m'aider à comprendre comment faire fonctionner ce bijou? J'ai installé les outils de ligne de commande.
ruby-on-rails
macos
gem
therubyracer
osx-mavericks
user2711889
la source
la source
homebrew
? Essayez d'installer la v8 en utilisantbrew install v8
avant d'installer gemRéponses:
Si vous décidez d'utiliser une
therubyracer
version plus récente de gem, vous n'aurez plus ce problèmeAutrement:
la source
brew tap homebrew/dupes
corrige "Erreur: aucune formule disponible pour apple-gcc42"Donc je l'ai finalement fait fonctionner après quelques difficultés ... grâce à Simon et Alvaro.
J'ai une chose à ajouter cependant, l'utilisation du drapeau --with-system-v8 n'a pas fonctionné pour moi ... J'ai donc supprimé mon système v8 avec
brew uninstall v8
Et la course
gem install libv8
Si vous avez déjà exécuté
gem install libv8
avec l'indicateur système v8, assurez-vous de désinstaller cette version de gem (faites-le en exécutantgem uninstall libv8
). L'important est que vous ne devriez pas utiliser celui fourni par brew, cela ne semble pas fonctionner dans Mavericks (il est bien installé et le bundler signalera que votre bundle est complet, mais votre application échouera quand elle essaiera d'utiliser la v8 ).Pour résumer la réponse, faire ce qui suit a fonctionné pour moi:
la source
brew update
qui arrive et tourne ces chemins vous laissera dans un état cassé.J'ai eu le même problème, cela fonctionne pour moi:
Tout d'abord:
brew install apple-gcc42
gcc
,cpp
,g++
) à/usr/local/Cellar/apple-gcc42/4.2.1-5666.3/bin/<compiler>
Après, vous pouvez essayer ceci:
brew install v8
gem install libv8 -v '3.3.10.4' -- --with-system-v8
gem install therubyracer -v 'therubyracer'
oubundle install
dans le répertoire du projet rails.la source
apple-gcc42: This formula either does not compile or function as expected on macOS
Mon macOS est le 10.12.6J'ai juste eu le même problème et une solution est actuellement d'utiliser apple-gcc42 au lieu de clang pour compiler les deux gemmes:
Et puis vous avez le choix entre faire des liens symboliques dans / usr / bin pour les binaires {gcc, g ++, c ++}:
En fait, g ++ devrait suffire.
Ou ... vous pouvez exporter des variables d'environnement CC / CXX / CPP avec des chemins correspondant aux binaires créés par homebrew. C'est sûrement une solution de contournement plus propre.
Une troisième solution consiste à télécharger Xcode 4.6.3 et à l'installer dans le dossier Applications . Ensuite, entrez dans le terminal:
Une fois la gemme installée, vous pouvez revenir à Xcode 5.0:
la source
J'ai trouvé une solution de contournement qui fonctionnait sans installer apple-gcc42.
Cela fonctionnera si le message d'erreur que vous recevez ressemble à ceci:
Ensuite, vous devriez pouvoir effectuer les opérations suivantes:
Source: https://github.com/cowboyd/therubyracer/issues/277#issuecomment-27734348
la source
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
Comme suggéré dans de nombreuses réponses, la chose la plus simple à faire est de compiler les extensions natives de The Ruby Racer avec Apple GCC 4.2 (au lieu de la version installée avec Xcode).
Si vous utilisez MacPorts, vous ne devriez pas avoir à configurer manuellement les liens symboliques pour les binaires GCC. La
port select
commande le fait pour vous. Si vous n'avez pas mis à jour MacPorts depuis l'installation de Mavericks, effectuez unsudo port selfupdate
. Avec MacPorts à jour, essayez ce qui suit:En général, cette procédure (
sudo port select gcc [version]
) fonctionnera chaque fois que vous souhaiterez utiliser une version spécifique de GCC au lieu de celle installée par Xcode (Apple LLVM v5 pour 10.9 Mavericks / Xcode 5).la source
J'arrive à installer therubyracer 0.12 et libv8 3.16.14.3 sur ruby 2.0.0p353 et os x 10.9
libv8 nécessite gcc42
therubyracer nécessite plus tard gcc
Gemfile
utiliser
bundle
au lieu degem install therubyracer
la source
bundle install
après des jours d'essais et d'erreurs. La seule chose que j'ai faite différemment a été de désinstaller tous les outils de développement qui ont été installés parbrew
jusqu'àgcc --version
ce qu'il soit signalé qu'il s'agissait de la version Apple LLVM et qu'il était configuré avec Xcode, puis j'ai déplacé l'existant/usr/bin/gcc
(et al.) Avant de créer un lien symbolique sur le apple-gcc42 libs, puis au lieu d'installer gcc49 (la dernière fois que j'ai essayé, il a fallu configurer un our), je viens de copier les bibliothèques d'origine gcc, g ++ et cpp. Étant donné que j'ai essayé 3 douzaines de façons différentes de trouver celle qui a fonctionné pour moi, YMMVCela devrait être un moyen sûr et propre (pas de liens symboliques) d'installer therubyracer pour quiconque a des problèmes.
Tiré de: gem install therubyracer -v 0.11.4 échoue sur OS X 10.10
installez Xcode (si vous n'avez pas déjà une de ces versions) 6.1.1, 6.2-beta ou 6.3-beta et (celle-ci est nécessaire) 4.6.3
gem uninstall libv8
si vous ne l'avez pas déjà faitpasser à Xcode 4.6.3
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
gem install libv8 -v '3.11.8.17'
Ou selon la version qui est liée à votre version de therubyracerpassez à Xcode 6.1.1, 6.2-beta ou 6.3-beta (ou si vous voulez essayer votre installation actuelle de Xcode, ajustez cette ligne, j'ai confirmé que les 3 fonctionnent)
sudo xcode-select --switch /Applications/Xcode6.1.1.app/Contents/Developer
gem install therubyracer -v '0.11.4'
ou la version que vous essayez d'installer.la source
sudo xcode-select --switch /Applications/Xcode4.6.3.app/Contents/Developer
exécute puis quegem install libv8 -v '3.3.10.4'
je l' exécute, j'obtiens:unable to locate xcodebuild, please make sure the path to the Xcode folder is set correctly!
Que fais-je de manière incorrecte?J'ai eu une erreur presque identique en essayant d'installer therubyracer 0.12.0 pour le faire fonctionner avec libv8. Cela a fonctionné pour moi:
la source
J'ai eu ce même problème lorsque j'ai mis à niveau OSX Mountain Lion vers OSX Mavericks.
La mise à niveau de ruby-1.8.7-p354 vers ruby-1.8.7-375 a fait l'affaire pour moi.
Essayez peut-être de passer de ruby 1.9.3-p194 à rc1 (1.9.3 est au-dessus de p484 maintenant)
en supposant que vous utilisez rbenv:
la source
J'ai eu ce problème après la mise à niveau de Mavericks vers Yosemite. Le problème était que j'avais compilé ma version Ruby avec l'ancienne version d'OSX.
Si je courais
ruby -rubygems -e 'puts Gem::Platform.new(RUBY_PLATFORM)'
J'obtiendrais la
x86_64-darwin-13
place dex86_64-darwin-14
Yosemite.Pour réinstaller Ruby I
rvm remove ruby-2.1.1
rvm reinstall --disable-binary 2.1
Ensuite, j'ai pu courir
bundle install
sans erreur après avoir essayé toutes les solutions ci-dessus.la source
Ce que j'ai fait, c'est sur osx mavericks:
Ensuite:
Cette procédure a téléchargé une version binaire de libv8 et l'a installée.
la source