2011-02-08 34 views
7

Với Ruby 187, tôi đã tải xuống devkit từ http://rubyinstaller.org/downloads và làm theo hướng dẫn trên https://github.com/oneclick/rubyinstaller/wiki/Development-Kit. Tôi cũng đã đảm bảo rằng bộ cài đặt được cài đặt đúng cách bằng cách thực hiện theo thử nghiệm khói .Bluecloth v2.0.10 với windows 7 không hoạt động

Sau đó tôi đã thử cài đặt phần mềm (v2.0.10). Nó đã thất bại với lỗi sau:

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

Có vẻ vấn đề này là một lỗi của phiên bản 2.0.10. Hãy thử sử dụng một phiên bản cũ hơn như 2.0.7 ('gem install bluecloth -v 2.0.7') –

+0

@LuisLavena Cảm ơn! Tôi có thể cài đặt với 2.0.7. – rpattabi

+0

@LuisLavena cho khoảng thời gian tôi tự hỏi nếu nó có ý nghĩa cho bạn để di chuyển bình luận của bạn đến một câu trả lời? – ScottJShea

Trả lời

6

Có vẻ như có lỗi/vấn đề với phiên bản 2.0.10 của BlueCloth. Bạn có thể thử sử dụng phiên bản cũ hơn như 2.0.7:

gem install bluecloth -v 2.0.7 

Có vẻ như hoạt động.

Cũng có lẽ giá trị kiểm tra phiên bản mới nhất này (2.2.0?) Và nếu không làm việc, báo cáo lại cho tác giả đá quý:

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

13

Nếu bạn cần 2.2.0 (phiên bản mới nhất), đây là cách tôi đã nhận nó để làm việc:

  1. Install DevKit

  2. Chạy lệnh dưới đây để cài đặt bluecloth:

    gem install bluecloth

    này sẽ thất bại thảm hại khi xây dựng "phần mở rộng tự nhiên", nhưng sẽ cài đặt thành công mã nguồn của đá quý.

  3. bluecloth.h tệp (đối với tôi, điều này được tìm thấy trong: D: \ ruby ​​\ Ruby-1.9.3-p125 \ lib \ ruby ​​\ gems \ 1.9.1 \ gems \ bluecloth-2.2. 0 \ ext), với bản vá từ đây: https://gist.github.com/1539611

  4. Chuyển tới thư mục cài đặt gem của bluecloth. Đối với tôi, điều này có vẻ như dưới đây:

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

  5. Chạy lệnh sau:

    rake gem

    Nó có thể nhắc bạn cài đặt một số đá quý khác, hãy làm theo cho phù hợp. Khi thực hiện xong, bạn sẽ thấy một bluecloth-2.2.0.gem được tạo. Đối với tôi, nó được tìm thấy ở đây:

    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. Đến bluecloth-2.2.0.gem vị trí và chạy lệnh sau:

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

+1

Tôi đã phải di chuyển 'bluecloth-2.2.0.gem' vào thư mục khác trước khi thực hiện bước 6. Nếu không,' gem' đã xóa thư mục cài đặt gem — bao gồm tệp '.gem' được tạo ở bước 5 — trước khi tiếp tục. – reima

+0

Làm điều này trên 'bluecloth-2.2.0.gem' khiến tôi bị lỗi biên dịch: http://puu.sh/8TPhG.png bất kỳ ý tưởng nào về cách giải quyết vấn đề này? – Seiyria

+0

Nevermind, những lỗi này xảy ra vì tôi quên bao gồm '#include" ruby.h "' phía trên '# ifdef' ... chỉ là một trường hợp áp dụng sai miếng vá. – Seiyria

0

Đây là vá mã bluecloth.h, để mọi người vội vàng ...

#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

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