2013-02-27 19 views
8

Tôi đang dùng Windows với Ruby 1.9.3 với DevKit (tất cả 32 bit trên Win 7 64 bit). Bây giờ tôi cố gắng để cài đặt đường ray, nhưng nhận được một lỗi từ bó. Nếu tôi cố gắng chạy (những gì bó được phàn nàn về)gem install json thất bại với redifinition của struct timezone/timespec

gem install json 

tôi nhận được thông báo lỗi sau:

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 

Bất kỳ ý tưởng?

Trả lời

20

của Ruby 1.9.3 đã được biên soạn với GCC 4.5.2, đó là devkit DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe sẵn từ RubyInstaller's download page

Bạn tải về các DevKits mới hơn, đó là chỉ tương thích với Ruby 2.0.0 phát hành, như đã nêu trong RubyInstaller thông báo.

Để làm rõ:

  • của Ruby 1.8.7: tdm-32-4.5.2
  • của Ruby 1.9.2: tdm-32-4.5.2
  • của Ruby 1.9.3: tdm-32-4.5.2
  • của Ruby 2.0.0: mingw64-32-4.7.2 (và phiên bản 64bits cho 64bits Ruby)

Tôi đã thêm làm rõ cho trang tải xuống RubyInstaller a bout này.

Hy vọng rằng sẽ giúp

+1

Đó chính xác là giải pháp. Tôi nghĩ rằng đây là giá trị đặt trên trang tải xuống của RubyInstaller! :) Cảm ơn bạn! – Henno

+0

Chính xác, tôi cũng vậy. Tôi đã tải xuống phiên bản mingw64 dựa trên thực tế là nó mới hơn nhiều. –

+0

Cùng một điều ở đây - json 1.7.7 biên dịch bây giờ mà không có một vấn đề! – konung

0

Bạn có thể mở "win32.h" được tìm thấy trong bao gồm thư mục fo phiên bản ruby ​​của bạn.

Sau đó, nhận xét các dòng có chức năng "clock_gettime" "clock_getres" được khai báo.

Các vấn đề liên quan