107 votes

L'installation de Ruby Gem Json échoue sur Mavericks et Xcode 5.1 - argument inconnu: '-multiply_definedsuppress'

J'essayais d'exécuter gem install json et j'ai eu l'erreur suivante

 Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

    /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb 
creating Makefile

make "DESTDIR=" clean

make "DESTDIR="
compiling generator.c
linking shared-object json/ext/generator.bundle
clang: error: unknown argument: '-multiply_definedsuppress' [-Wunused-command-line-argument-hard-error-in-future]
clang: note: this will be a hard error (cannot be downgraded to a warning) in the future
make: *** [generator.bundle] Error 1

make failed, exit code 2

Gem files will remain installed in /opt/boxen/repo/.bundle/ruby/2.0.0/gems/json-1.8.0 for inspection.
Results logged to /opt/boxen/repo/.bundle/ruby/2.0.0/extensions/universal-darwin-13/2.0.0/json-1.8.0/gem_make.out
 

J'utilise:

Os X: 10.9.2
Xcode: 5.1 Build version 5B130a
Outils de ligne de commande (CLT): 5.1.0.0.1.1393561416
Ruby: ruby ​​2.0.0p247 (2013-06-27 révision 41674) [universal.x86_64-darwin13]
Ruby Gem: 2.2.2
GCC: 4.2.1 Apple LLVM version 5.1 (clang-503.0.38) (basé sur LLVM 3.4svn)

146voto

Muncken Points 2682

Je rencontre exactement le même problème après la mise à jour de Xcode 5.1 et nouvelles d'Apple ne sont pas bons. À Partir De Xcode 5.1 Notes De Publication:

  • L'Apple LLVM compilateur dans Xcode 5.1 traite non reconnu options de ligne de commande comme des erreurs. Ce problème a été vu lors de la construction de Python extensions natives et les Gems Ruby, où certains invalides options du compilateur sont actuellement spécifié.

Les projets utilisant des invalides options du compilateur devra être modifié pour supprimer ces options. Pour faciliter cette transition, le compilateur va accepter temporairement une possibilité de revenir à l'erreur, un avertissement:

-Wno-error=unused-command-line-argument-hard-error-in-future

Pour contourner ce problème, définissez la ARCHFLAGS variable d'environnement de déclasser l'erreur à un avertissement.

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName

Il semble que toutes les gemmes de violer les options du compilateur doit être mis à jour pour utiliser les options valides. Il est expressément indiqué que: Cette option [déclassement erreur avertissement] ne seront pas pris en charge dans l'avenir.

Le cliquetis noter que nous voyons (ce sera une erreur de disque dur (ne peut pas être réduite à un avertissement) dans le futur) correspond à la variation annoncé dans les notes de version.


Pour répondre à votre question plus précisément, utilisez la commande suivante pour installer le json gem:

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install json

Notez, cependant, que ce n'est qu'une solution temporaire.

107voto

Paul Chechetin Points 2584

Un paquebot pour réparer ça

 curl https://gist.githubusercontent.com/Paulche/9713531/raw/1e57fbb440d36ca5607d1739cc6151f373b234b6/gistfile1.txt | sudo patch /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb
 

19voto

Lightforce Points 1821

Pour résoudre le problème, vous pouvez installer la version la plus récente de ruby ​​décrite par @Sash. Vous pouvez utiliser les commandes suivantes pour le faire. Si vous avez déjà installé rvm, vous n'avez pas besoin de le réinstaller.

 #Install rvm
\curl -sSL https://get.rvm.io | bash -s stable

#Install ruby version 2.0.0-p451
rvm install ruby-2.0.0-p451

#Print ruby version to verify that it was installed successfully
ruby -v

#Install json gem
sudo gem install json
 

12voto

Sash Points 188

Problème déjà abordé par Ruby:

https://bugs.ruby-lang.org/issues/9624

il ne reste plus qu'à attendre qu'Apple mette à jour sa version de Ruby (2.0.0p247) après celle de la dernière version (2.0.0p451) qui n'est pas encore sortie ...

Mise à jour (15/05/2014): Mavericks 10.9.3 met à jour ruby ​​à ruby 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13] Et cela semble résoudre le problème.

4voto

worldask Points 848

@Muncken a déjà fourni une réponse pour installer gem un par un:

 ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future gem install GemName
 

Sur la base de la réponse de Muncken, j'ai essayé que cela fonctionne également avec bundle install

 ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle install
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X