2011-02-08 7 views
7

WIth Ruby 187, я скачал devkit от http://rubyinstaller.org/downloads и выполнил инструкцию за https://github.com/oneclick/rubyinstaller/wiki/Development-Kit. Я также удостоверился, что devkit установлен правильно, следуя тестам на дым.Bluecloth v2.0.10 с окнами 7 не работает

Я тогда попытался установить bluecloth (v2.0.10). Он потерпел неудачу с следующими ошибками:

C:\test\typo>gem install bluecloth --platform=ruby 

Temporarily enhancing PATH to include DevKit... 
Building native extensions. This could take a while... 
ERROR: Error installing bluecloth: 
     ERROR: Failed to build gem native extension. 

c:/Ruby187/bin/ruby.exe extconf.rb 
checking for srand()... yes 
checking for random()... no 
checking for rand()... yes 
checking for bzero() in string.h,strings.h... no 
checking for strcasecmp()... yes 
checking for strncasecmp()... yes 
checking for mkdio.h... yes 
checking for ruby/encoding.h... no 
creating extconf.h 
creating Makefile 

make 
gcc -I. -I. -Ic:/Ruby187/lib/ruby/1.8/i386-mingw32 -I. - 
DRUBY_EXTCONF_H=\"extcon 
f.h\" -DVERSION=\"2.0.4\" -g -O2 -DFD_SETSIZE=256 -I. -Wall -c 
bluecloth.c 

In file included from c:\rubydevkit\mingw\bin\../lib/gcc/ 
mingw32/4.5.1/../../../../include/windows.h:48:0, 
       from c:\rubydevkit\mingw\bin\../lib/gcc/ 
mingw32/4.5.1/../../../../include/winsock2.h:22, 
       from c:/Ruby187/lib/ruby/1.8/i386-mingw32/win32/ 
win32.h:27, 
       from c:/Ruby187/lib/ruby/1.8/i386-mingw32/defines.h: 
186, 
       from c:/Ruby187/lib/ruby/1.8/i386-mingw32/ruby.h:37, 
       from bluecloth.h:14, 
       from bluecloth.c:25: 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:229:23: error: duplicate 'unsigned' 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:238:23: error: duplicate 'unsigned' 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:238:23: error: two or more data types in declaration 
specifiers 
c:\rubydevkit\mingw\bin\../lib/gcc/mingw32/4.5.1/../../../../include/ 
windef.h:241:24: error: duplicate 'unsigned' 
bluecloth.c: In function 'bluecloth_initialize': 
bluecloth.c:190:9: warning: unused variable 'utf8text' 
make: *** [bluecloth.o] Error 1 

Gem files will remain installed in c:/Ruby187/lib/ruby/gems/1.8/gems/ 
bluecloth-2.0.10 for inspection. 
Results logged to c:/Ruby187/lib/ruby/gems/1.8/gems/bluecloth-2.0.10/ 
ext/gem_make.out 

C:\test\typo> 
+2

Кажется, что проблема является ошибкой в ​​2.0.10 версии. Попробуйте использовать более старую версию, например, 2.0.7 ('gem install bluecloth -v 2.0.7') –

+0

@LuisLavena Спасибо! Я мог установить с 2.0.7. – rpattabi

+0

@ LuisLavena с учетом продолжительности времени. Интересно, имеет ли смысл перевести свой комментарий на ответ? – ScottJShea

ответ

6

Кажется, есть ошибка/проблема с версией 2.0.10 из BlueCloth. Вы можете попробовать использовать более старую версию, такую ​​как 2.0.7:

gem install bluecloth -v 2.0.7 

Который, кажется, работает.

Кроме того, вероятно, это стоит проверить последнюю версию (2.2.0?), А если не работает, сообщите об этом обратно гем автора:

http://deveiate.org/projects/BlueCloth/query

13

Если вам нужна 2.2.0 (последняя версия), вот как я получил его на работу:

  1. Установите DevKit

  2. Выполните команду ниже, чтобы установить bluecloth:

    gem install bluecloth

    это с треском провалились при создании «собственных расширений», но будет успешно установить исходный код драгоценного камня.

  3. Patch bluecloth.h файл (для меня, это можно найти в: D: \ рубин \ Рубин-1.9.3-P125 \ Lib \ рубин \ самоцветы \ 1.9.1 \ самоцветов \ bluecloth-2,2. 0 \ ext), с патчем отсюда: https://gist.github.com/1539611

  4. Перейдите в папку установки драгоценных камней bluecloth. Для меня, это выглядит, как показано ниже:

    D:\ruby\Ruby-1.9.3-p125\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0

  5. Выполните следующую команду:

    rake gem

    Он может попросить вас установить некоторые другие драгоценные камни, следовать соответствующим образом. Когда все будет готово, вы должны увидеть созданный bluecloth-2.2.0.gem. Для меня, он находится здесь:

    D:\ruby\Ruby-1.9.3-p125\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0\pkg\bluecloth-2.2.0.gem

  6. Перейти к bluecloth-2.2.0.gem место, и выполните следующую команду:

    gem install bluecloth-2.2.0.gem --platform=ruby

+1

Мне пришлось переместить 'bluecloth-2.2.0.gem' в другой каталог, прежде чем делать шаг 6. В противном случае' gem' удалил папку установки gem, включая файл '.gem', созданный на шаге 5, перед тем, как продолжить. – reima

+0

Выполнение этого на 'bluecloth-2.2.0.gem' вызывает у меня кучу ошибок компиляции: http://puu.sh/8TPhG.png любая идея о том, как решить эту проблему? – Seiyria

+0

Nevermind, эти ошибки произошли, потому что я забыл включить '#include" ruby.h "' над '# ifdef' ... просто случай неправильного применения патча. – Seiyria

0

Это исправленный код bluecloth.h, для людей в спешке ...

#ifndef BLUECLOTH_H 
 
#define BLUECLOTH_H 
 
    
 
#include "ruby.h" 
 

 
#if defined(HAVE_RUBY_ENCODING_H) && HAVE_RUBY_ENCODING_H 
 
# \t define M17N_SUPPORTED 
 
# \t include "ruby/encoding.h" 
 
#endif 
 

 
#include "config.h" 
 
#include "assert.h" 
 
    
 
#include "mkdio.h" 
 
    
 
void mkd_initialize \t \t _((void)); 
 
void mkd_with_html5_tags \t _((void)); 
 
    
 
/* Replace the macro from encoding.h that refers to static 'rb_encoding_list' */ 
 
#ifdef ENC_FROM_ENCINDEX 
 
#undef ENC_FROM_ENCINDEX 
 
#define ENC_FROM_ENCINDEX(idx) (rb_enc_from_index(idx)) 
 
#endif 
 

 
#endif

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