创业板安装JSON失败结构时区/的timespec的redifinition(gem install

2019-07-20 16:05发布

我在Windows上使用Ruby用的devkit(在Win 7 64位的所有32位)1.9.3。 现在,我尝试安装滑轨,而是从束得到一个错误。 如果我尝试运行(什么束在抱怨)

 gem install json

我收到以下错误信息:

D:\RubyTest>gem install json
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing json:
        ERROR: Failed to build gem native extension.

        D:/Ruby193/bin/ruby.exe extconf.rb
creating Makefile

make
generating generator-i386-mingw32.def
compiling generator.c
In file included from d:/Ruby193/include/ruby-1.9.1/ruby/ruby.h:1381:0,
                 from d:/Ruby193/include/ruby-1.9.1/ruby.h:32,
                 from ../fbuffer/fbuffer.h:5,
                 from generator.c:1:
d:/Ruby193/include/ruby-1.9.1/ruby/missing.h:41:8: error: redefinition of 'struc
t timespec'
In file included from d:\ruby193\mingw\bin\../lib/gcc/i686-w64-mingw32/4.7.2/../
../../../i686-w64-mingw32/include/process.h:12:0,
                 from d:/Ruby193/include/ruby-1.9.1/ruby/win32.h:62,
                 from d:/Ruby193/include/ruby-1.9.1/ruby/defines.h:223,
                 from d:/Ruby193/include/ruby-1.9.1/ruby/ruby.h:67,
                 from d:/Ruby193/include/ruby-1.9.1/ruby.h:32,
                 from ../fbuffer/fbuffer.h:5,
                 from generator.c:1:
d:\ruby193\mingw\bin\../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-ming
w32/include/sys/types.h:89:8: note: originally defined here
In file included from d:/Ruby193/include/ruby-1.9.1/ruby/ruby.h:1381:0,
                 from d:/Ruby193/include/ruby-1.9.1/ruby.h:32,
                 from ../fbuffer/fbuffer.h:5,
                 from generator.c:1:
d:/Ruby193/include/ruby-1.9.1/ruby/missing.h:48:8: error: redefinition of 'struc
t timezone'
In file included from d:/Ruby193/include/ruby-1.9.1/ruby/win32.h:63:0,
                 from d:/Ruby193/include/ruby-1.9.1/ruby/defines.h:223,
                 from d:/Ruby193/include/ruby-1.9.1/ruby/ruby.h:67,
                 from d:/Ruby193/include/ruby-1.9.1/ruby.h:32,
                 from ../fbuffer/fbuffer.h:5,
                 from generator.c:1:
d:\ruby193\mingw\bin\../lib/gcc/i686-w64-mingw32/4.7.2/../../../../i686-w64-ming
w32/include/time.h:260:8: note: originally defined here
make: *** [generator.o] Error 1


Gem files will remain installed in D:/Ruby193/lib/ruby/gems/1.9.1/gems/json-1.7.
7 for inspection.
Results logged to D:/Ruby193/lib/ruby/gems/1.9.1/gems/json-1.7.7/ext/json/ext/ge
nerator/gem_make.out

任何的想法?

Answer 1:

红宝石1.9.3与4.5.2 GCC,这是编译的devkit DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe从RubyInstaller的下载页面

您下载的新DevKits,即用Ruby 2.0.0版本兼容,如RubyInstaller公告标明。

澄清:

  • 红宝石1.8.7: tdm-32-4.5.2
  • 红宝石1.9.2: tdm-32-4.5.2
  • 红宝石1.9.3: tdm-32-4.5.2
  • 红宝石2.0.0: mingw64-32-4.7.2 (和64位版本,64位红宝石)

我添加了一个澄清RubyInstaller这个下载页面。

希望帮助



Answer 2:

你可以打开“win32.h”在FO你的Ruby版本包括目录中找到。

然后注释掉其中“clock_gettime”“clock_getres”函数声明行。



文章来源: gem install json fails with redifinition of struct timezone/timespec