7

使用 Ruby 187,我从http://rubyinstaller.org/downloads下载了 devkit, 并按照https://github.com/oneclick/rubyinstaller/wiki/Development-Kit的说明进行操作。我还通过烟雾测试确保正确安装了 devkit。

然后我尝试安装 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>
4

4 回答 4

13

如果您需要 2.2.0(最新版本),这是我如何让它工作的:

  1. 安装DevKit

  2. 运行以下命令来安装 bluecloth:

    gem install bluecloth

    在构建“本机扩展”时,这将失败,但会成功安装 gem 的源代码。

  3. 修补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

  4. 转到 bluecloth 的 gem 安装文件夹。对我来说,这如下所示:

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

  5. 运行以下命令:

    rake gem

    它可能会提示您安装其他一些 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

于 2012-06-14T16:58:57.437 回答
6

BlueCloth 2.0.10 版似乎存在错误/问题。您可以尝试使用像 2.0.7 这样的旧版本:

gem install bluecloth -v 2.0.7

这似乎有效。

也可能这值得检查最新版本(2.2.0?),如果不起作用,请将其报告给 gem 作者:

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

于 2012-03-01T13:03:22.180 回答
0

这是修补过的 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

于 2015-01-20T07:56:51.300 回答
0

github上有一个已经包含补丁的fork:

https://github.com/drakontia/bluecloth

于 2015-10-16T19:49:51.350 回答