Bluecloth v2.0.10,Windows 7无效

在Ruby 187中,我从http://rubyinstaller.org/downloads下载了devkit 并遵循https://github.com/oneclick/rubyinstaller/wiki/Development-Kit上的说明。 我还确保通过以下方式正确安装devkit 烟雾测试。 然后我尝试安装蓝布(v2.0.10)。它失败了 以下错误:
C:testtypo>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:rubydevkitmingwbin../lib/gcc/
mingw32/4.5.1/../../../../include/windows.h:48:0,
                from c:rubydevkitmingwbin../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:rubydevkitmingwbin../lib/gcc/mingw32/4.5.1/../../../../include/
windef.h:229:23: error: duplicate 'unsigned'
c:rubydevkitmingwbin../lib/gcc/mingw32/4.5.1/../../../../include/
windef.h:238:23: error: duplicate 'unsigned'
c:rubydevkitmingwbin../lib/gcc/mingw32/4.5.1/../../../../include/
windef.h:238:23: error: two or more data types in declaration
specifiers
c:rubydevkitmingwbin../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:testtypo>
    
已邀请:
如果您需要2.2.0(最新版本),请按以下步骤操作: 安装DevKit 运行以下命令安装蓝布:
gem install bluecloth
在构建“原生扩展”时,这将失败,但会成功安装gem的源代码。 补丁bluecloth.h文件(对我来说,这可以在:D: ruby​​ Ruby-1.9.3-p125 lib ruby​​ gems 1.9.1 gems bluecloth-2.2.0 ext)中找到来自这里的补丁:https://gist.github.com/1539611 转到bluecloth的gem安装文件夹。对我来说,这看起来如下:
D:rubyRuby-1.9.3-p125librubygems1.9.1gemsbluecloth-2.2.0
运行以下命令:
rake gem
它可能会提示您安装其他一些宝石,请相应地遵循。 完成后,您应该看到创建了bluecloth-2.2.0.gem。对我来说,它在这里找到:
D:rubyRuby-1.9.3-p125librubygems1.9.1gemsbluecloth-2.2.0pkgbluecloth-2.2.0.gem
转到bluecloth-2.2.0.gem位置,然后运行以下命令:
gem install bluecloth-2.2.0.gem --platform=ruby
    
似乎BlueCloth的2.0.10版本存在错误/问题。您可以尝试使用2.0.7之类的旧版本:
gem install bluecloth -v 2.0.7
这似乎有效。 也许这值得检查最新版本(2.2.0?),如果不能正常工作,请将其报告给gem作者: http://deveiate.org/projects/BlueCloth/query     
这是修补的bluecloth.h代码,适合匆忙的人......
#ifndef BLUECLOTH_H
#define BLUECLOTH_H
 
#include "ruby.h"

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

#include "config.h"
#include "assert.h"
 
#include "mkdio.h"
 
void mkd_initialize  		_(( void ));
void mkd_with_html5_tags	_(( 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
github上有一个已经包含补丁的分支: https://github.com/drakontia/bluecloth     

要回复问题请先登录注册