3

尝试在 Windows 上更新我的 bluecloth gem 版本时收到错误消息。是否有需要为 Windows 安装的不同版本或可以使用的 bluecloth 替代品?不幸的是,由于我使用的其他软件,我的开发环境严格是 Windows,否则我会使用 Linux 环境。

这是我得到的复制粘贴:

C:\Users\Developer1>gem update
更新已安装的 gems
更新 bluecloth
暂时增强 PATH 以包含 DevKit...
构建原生扩展。这可能需要一段时间...
错误:安装 bluecloth 时出错:
错误:无法构建 gem 原生扩展。

C:/Ruby192/bin/ruby.exe extconf.rb
检查 srand()... 是
检查 random()... 不
检查 rand()... 是
检查 string.h 中的 bzero(), strings.h... 不
检查 strcasecmp()... 是
检查 strncasecmp()... 是
检查 mkdio.h... 是
检查 ruby​​/encoding.h... 是
创建 extconf.h
创建生成文件

制作 C:/Ruby192/bin/ruby -e "puts 'EXPORTS', 'Init_bluecloth_ext'" > bluecloth_ext-i386-mingw32.def gcc -I。-IC:/Ruby192/include/ruby-1.9.1/i386-mingw32 -I/C/Ruby192/include/ruby-1
.9.1/ruby/backward -I/C/Ruby192/include/ruby-1.9.1 -我。-DRUBY_EXTCONF_H=\"extconf.h\" -DVERSION=\"2.0.9\" -O3 -g -Wextra -Wno-unused-parameter -Wno-括号 -Wpointer-arith -Wwrite-strings -Wno-missing-field -initializers -Wno-long-long -I。-o bluecloth.o -c bluecloth.c
在来自 c:\ruby-devkit\mingw\bin../lib/gcc/mingw32/4.5.2/../../..
/../include 的文件中/windows.h:48:0,
来自 c:\ruby-devkit\mingw\bin../lib/gcc/mingw32/4.5.2/../../..
/../include/winsock2.h :22,
来自 c:/Ruby192/include/ruby-1.9.1/ruby/win32.h:33,
来自 c:/Ruby192/include/ruby-1.9.1/ruby/defines.h:205,
来自 c:/Ruby192/include/ruby-1.9.1/ruby/ruby.h:74,
来自 c:/Ruby192/包括/ruby-1.9.1/ruby.h:32,
来自 bluecloth.h:14,
来自 bluecloth.c:25:
c:\ruby-devkit\mingw\bin../lib/gcc/mingw32/4.5.2 /../../../../include/windef.h:2
29:23:错误:重复“无符号”
c:\ruby-devkit\mingw\bin../lib/gcc/mingw32/4.5 .2/../../../../include/windef.h:2
38:23:错误:重复“无符号”
c:\ruby-devkit\mingw\bin../lib/gcc/mingw32 /4.5.2/../../../../include/windef.h:2
38:23: 错误:声明说明符
c:\ruby-devkit\mingw\bin.. /lib/gcc/mingw32/4.5.2/../../../../include/windef.h:2
41:24:错误:重复的“未签名”
制作:* [bluecloth.o] 错误 1

Gem 文件将继续安装在 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bluecloth-2.2.0 以供检查。结果记录到 C:/Ruby192/lib/ruby/gems/1.9.1/gems/bluecloth-2.2.0/ext/gem_make.out 没有什么可更新的

4

2 回答 2

3

似乎 BlueCloth 中包含的 C 扩展中包含标头的顺序阻碍了 Windows 下的编译。

应用以下补丁:

https://gist.github.com/1539611

编译和工作。

也许您可以将问题报告给 gem 作者?

http://deveiate.org/projects/BlueCloth https://github.com/ged/bluecloth

希望有帮助。

于 2011-12-30T12:25:19.543 回答
3

2.2.0 中的头文件阻止 bluecloth 在 Windows 上编译。但是,您可以自己修补它。正如 Luis Lavena 提到的,您需要应用路径。

  1. gem install bluecloth -v '2.2.0'如果您还没有运行,请运行

  2. 在文件上应用此补丁bluecloth.h,在我的机器上它位于

    H:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0\ext\bluecloth.h

  3. 例如,转到 bluecloth 2.2.0 目录

    H:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0

  4. 运行rake gem(这可能需要安装一些额外的 gem)。

    然后你应该看到 .gem 文件创建在

    H:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0\pkg\bluecloth-2.2.0.gem

  5. 打开此目录并安装已修补的 gem:

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

于 2012-11-24T18:09:33.710 回答