1

我一直在遵循开发工具包为 ruby​​installer
https://github.com/oneclick/rubyinstaller/wiki/Development-Kit提供的说明

当我尝试最后一步时,出现以下错误:
错误:无法构建 gem 原生扩展

这是日志文件。 http://pastebin.com/mLUCCVd3

我一直在关注故障排除部分,但无济于事。

运行 windows7x64 这一切都开始了,因为我想让 appfogtunnel工作

任何帮助表示赞赏

4

2 回答 2

0

我看到一些东西表明 32 位和 64 位构建之间不匹配。

除了查看您的错误日志之外,没有做任何事情,我看到了两件事。

首先,“c:/Ruby192/include/ruby-1.9.1/ruby/ruby.h:112:14: 错误:数组‘ruby_check_sizeof_voidp’的大小为负数”

其次,所有“警告:从不同大小的整数转换为指针[-Wint-to-pointer-cast]”消息。

在第一种情况下,32 位无符号整数值 0xFFFFFFFF 是有符号整数值 -1;在 64 位中,它仍然是 0x00000000FFFFFFFF。在第二种情况下,对于 32 位和 64 位窗口,sizeof(int) 都是 4;在 win32 中,sizeof(*T) 为 4,但在 64 位 Windows 中,sizeof(*T) 为 8,因此,在 32 位中,sizeof(int) == sizeof(*T),但在 win64 中没有。

在构建脚本、命令行和预处理器定义中寻找矛盾的架构。

于 2013-04-22T20:29:01.340 回答
0

在您最初的尝试中,您似乎使用的是 ruby​​ 1.9.x。我最近尝试在 1.9.3 中安装 json,我遇到了一些与您相同的错误,特别是:

c:/Ruby192/include/ruby-1.9.1/ruby/missing.h:42:8: error: redefinition of 'struct timezone'

事实证明,这是因为我使用的是最新版本的 devkit……您需要使用“旧”devkit,我相信它最近已重命名为适用于 1.9.x 和 1.8.7 的“tdm” (我最初将那里的信息页面解释为意味着 tdm 用于 1.8.x,因为浏览速度太快并且过去已经这样做了很多次,而且就语言本身而言,1.9 与 2.0 的兼容性远胜于1.8 到 1.9)。

在您的第二次尝试中(在您对另一个答案的评论中注明)您切换到使用 ruby​​ 2.0,您的 gem 可能与它完全不兼容,idk,这完全是另一个蠕虫罐头。

于 2013-07-04T17:27:43.213 回答