2013-05-17 3 views
1

При попытке установить камень date-performance с командой gem install date-performance, я получаю эту ошибку:Дата производительность ошибка установки

date_performance.c:16:14: erro: static declaration of ‘rb_cRational’ follows non-static declaration 
... 
date_performance.c:365:3: aviso: ISO C90 forbids mixed declarations and code [-pedantic] 
make: ** [date_performance.o] Erro 1 

Как это исправить?

Udpate:

так это Ubuntu, и я использую рубин 1,9

Следит полную ошибку:

/home/vmlellis/.rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb 
creating Makefile 

make 
compiling date_performance.c 
date_performance.c:16:14: erro: static declaration of ‘rb_cRational’ follows non-static declaration 
In file included from /home/vmlellis/.rvm/rubies/ruby-1.9.3-p392/include/ruby-1.9.1/ruby.h:32:0, 
       from date_performance.c:9: 
/home/vmlellis/.rvm/rubies/ruby-1.9.3-p392/include/ruby-1.9.1/ruby/ruby.h:1271:19: nota: previous declaration of ‘rb_cRational’ was here 
date_performance.c: Na função ‘rb_date_new’: 
date_performance.c:200:5: aviso: ISO C90 forbids mixed declarations and code [-pedantic] 
date_performance.c:219:3: aviso: ISO C90 forbids mixed declarations and code [-pedantic] 
date_performance.c: Na função ‘rb_date_strftime’: 
date_performance.c:253:31: erro: ‘struct RString’ has no member named ‘ptr’ 
date_performance.c:254:29: erro: ‘struct RArray’ has no member named ‘ptr’ 
date_performance.c:268:30: erro: ‘struct RString’ has no member named ‘ptr’ 
date_performance.c:269:17: erro: ‘struct RString’ has no member named ‘len’ 
date_performance.c:277:30: erro: ‘struct RString’ has no member named ‘ptr’ 
date_performance.c:279:5: aviso: implicit declaration of function ‘bzero’ [-Wimplicit-function-declaration] 
date_performance.c:279:5: aviso: incompatible implicit declaration of built-in function ‘bzero’ [habilitado por padrão] 
date_performance.c:284:23: erro: ‘struct RString’ has no member named ‘len’ 
date_performance.c: Na função ‘rb_date_strptime’: 
date_performance.c:304:27: erro: ‘struct RString’ has no member named ‘ptr’ 
date_performance.c:305:27: erro: ‘struct RString’ has no member named ‘ptr’ 
date_performance.c:329:3: aviso: implicit declaration of function ‘strptime’ [-Wimplicit-function-declaration] 
date_performance.c: Na função ‘rb_date_compare’: 
date_performance.c:350:3: aviso: ISO C90 forbids mixed declarations and code [-pedantic] 
date_performance.c:353:5: aviso: comentários usando o estilo do C++ não são permitidos na ISO C90 [habilitado por padrão] 
date_performance.c:353:5: aviso: (isso será relatado apenas uma vez por aquivo de entrada) [habilitado por padrão] 
date_performance.c:365:3: aviso: ISO C90 forbids mixed declarations and code [-pedantic] 
make: ** [date_performance.o] Erro 1 
+0

Пожалуйста, заполните полную ошибку. Кроме того, какая ОС вы работаете? –

+0

Похоже, что 'rb_cRational' определяется дважды, что может быть ошибкой., –

+0

Я думаю, что это только для ruby ​​1.8 ... Я думаю, что улучшения в производительности Date на ruby ​​1.9. –

ответ

1

Этот камень предназначается в сторону Ruby 1.8:

This package adds some semblance of performance to Ruby 1.8's core Date class using a combination of different techniques

Возможно, он сломается в Ruby 1.9+ (Ruby не знает n для его прямой совместимости ..), а на странице проекта GitHub вы можете увидеть, что она не обновлялась последние 4 года.

Он не будет работать на вашей установке Ruby 1.9 Ubuntu.

+0

Также важно отметить, что Ruby 1.9.3 (если не раньше) переопределил Date в C как часть стандартной библиотеки. – WillP

Смежные вопросы