2017-04-12 2 views
2

Ich laufe gem install json -v '1.8.1' aber ich diesen Fehler ..Fehler bei der Installation json Ruby-Juwel

gem install json -v '1.8.1' 
Building native extensions. This could take a while... 
ERROR: Error installing json: 
    ERROR: Failed to build gem native extension. 

    current directory: /Users/johnwilliamson/.rvm/gems/ruby-2.4.1/gems/json-1.8.1/ext/json/ext/generator 
/Users/johnwilliamson/.rvm/rubies/ruby-2.4.1/bin/ruby -r ./siteconf20170412-72871-wada1h.rb extconf.rb 
creating Makefile 

current directory: /Users/johnwilliamson/.rvm/gems/ruby-2.4.1/gems/json-1.8.1/ext/json/ext/generator 
make "DESTDIR=" clean 

current directory: /Users/johnwilliamson/.rvm/gems/ruby-2.4.1/gems/json-1.8.1/ext/json/ext/generator 
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/johnwilliamson/.rvm/rubies/ruby-2.4.1/include/ruby-2.4.0/ruby/intern.h:795:9: note: macro 'rb_str_new' defined here 
#define rb_str_new(str, len) RB_GNUC_EXTENSION_BLOCK( \ 
     ^
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)' (aka 'unsigned long (const char *, long)') [-Wint-conversion] 
    VALUE result = rb_str_new(FBUFFER_PAIR(fb)); 
     ^  ~~~~~~~~~~ 
generator.c:840:25: error: use of undeclared identifier 'rb_cFixnum' 
    } else if (klass == rb_cFixnum) { 
         ^
generator.c:842:25: error: use of undeclared identifier 'rb_cBignum' 
    } else if (klass == rb_cBignum) { 
         ^
1 warning and 3 errors generated. 
make: *** [generator.o] Error 1 

make failed, exit code 2 

Gem files will remain installed in /Users/johnwilliamson/.rvm/gems/ruby-2.4.1/gems/json-1.8.1 for inspection. 
Results logged to /Users/johnwilliamson/.rvm/gems/ruby-2.4.1/extensions/x86_64-darwin-16/2.4.0/json-1.8.1/gem_make.out 

Wenn ich nur gem laufen installieren json installiert es in Ordnung mich über Version unter 2 aber ich versuche, diese zu installieren https://github.com/peatio/peatio und es will diese Version speziell.

Irgendwelche anderen Ideen?

+1

Nur eine Vermutung: Da Ruby bereits JSON eingebaut hat, glaube ich nicht, dass der Autor des Spiels erwartet, dass nur Leute eine sehr alte Ruby-Version (1.7, vielleicht 1.8) verwenden, um das Gem und das Native zu verwenden C-Schnittstelle funktioniert nicht mit neueren Ruby-Versionen. Darf ich fragen, warum Sie das Gem verwenden möchten, wenn Sie json bereits in der Ruby-Standardbibliothek haben? – user1934428

+0

Ich möchte den Edelstein nicht selbst verwenden, aber es ist eine Abhängigkeit in einem Edelstein, den ich installieren möchte und ich kann ihn nicht in der Edelstein-Datei finden, um ihn entweder zu entfernen: | – velua

Antwort

0

Das Problem tritt auf, weil Sie nicht im richtigen Verzeichnis sind. Bitte gehen Sie zuerst zu Ihrem Rails-Verzeichnis-Ordner und dann diesen Befehl wie folgt ausführen:

rails @ rails: ~/rails_project/btc $ gem installieren json -v '1.8.1' Dann funktioniert es gut.