OS: Mac OS X 10.10.3 XCode: Dernier avec les outils de ligne de commande installés (version 6.3) Rails: version 4.2.1 Ruby: version 2.2.1
J'essayais de générer les routes pour un projet sur lequel je travaille (je le fais régulièrement), quand j'ai reçu un message d'erreur, avec une recommandation que j'effectue l'installation et l'exécution du bundle. Je l'ai fait, et cette fois-ci, le processus s'est interrompu lors de la compilation de JSON Gem (version 1.7.7).
En faisant des recherches sur StackOverflow, la recommandation était de mettre à jour les outils de ligne de commande de Xcode, et je l'ai fait, mais cela n'a pas résolu le problème.
J'ai essayé d'installer la version 1.7.7 de JSON séparément, et cela a échoué, me demandant de rechercher le journal des erreurs:
/Users/zwb/.rvm/rubies/Ruby-2.2.1/bin/Ruby -r ./siteconf20150411-36070-1t083xl.rb extconf.rb
creating Makefile
make "DESTDIR=" clean
make "DESTDIR="
compiling generator.c
In file included from generator.c:1:
./../fbuffer/fbuffer.h:175:47: error: too few arguments provided to function-like macro invocation
VALUE result = rb_str_new(FBUFFER_PAIR(fb));
^
/Users/zwb/.rvm/rubies/Ruby-2.2.1/include/Ruby-2.2.0/Ruby/intern.h:793:9: note: macro 'rb_str_new' defined here
#define rb_str_new(str, len) __extension__ ( \
^
In file included from generator.c:1:
./../fbuffer/fbuffer.h:175:11: warning: incompatible pointer to integer conversion initializing 'VALUE' (aka 'unsigned long') with an expression of type 'VALUE (const char *, long)' [-Wint-conversion]
VALUE result = rb_str_new(FBUFFER_PAIR(fb));
^ ~~~~~~~~~~
1 warning and 1 error generated.
make: *** [generator.o] Error 1
make failed, exit code 2
Malheureusement, JSON-1.7.7 (et jusqu'à 1.8.1) est incompatible avec Ruby-2.2.x. Comme vous utilisez Ruby-2.2.1, cela ne fonctionnera pas pour vous.
Il y a 2 options pour vous:
json
gem vers la version 1.8.2
. - Préférable Ruby-2.2.1/ext/json/fbuffer/fbuffer.h
Et remplacez le code problématique par VALUE result = rb_str_new(FBUFFER_PTR(fb), FBUFFER_LEN(fb));
. Regardez ici pour plus de détailsSi vous utilisez Ruby 2.2.0 ou supérieur, la gemme json ne se compilera pas correctement. Vous pouvez résoudre ce problème en émettant bundle update json
J'ai également rencontré ce problème, et aucune des corrections suggérées ici ne l'a résolu.
Je n'ai pu le résoudre qu'en téléchargeant et en réinstallant manuellement la version appropriée des outils de ligne de commande Xcode:
https://developer.Apple.com/download/more/?name=command%20line%20tools
gem install json -v '1.8.2' a fonctionné pour moi.