错误:无法在Windows 7x64上构建gem原生扩展

时间:2013-04-16 15:46:26

标签: windows gem appfog

我一直在遵循开发套件为rubyinstaller提供的说明 https://github.com/oneclick/rubyinstaller/wiki/Development-Kit

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

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

我一直关注troubleshoot部分,但没有用。

运行windows7x64 这一切都是因为我想让appfog tunnel正常工作

感谢任何帮助

2 个答案:

答案 0 :(得分: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被赋值为int值-1;在64位,它仍然是0x00000000FFFFFFFF。在第二种情况下,32位和64位窗口的sizeof(int)为4;在win32中,sizeof(* T)为4,但在64位窗口中,sizeof(* T)为8,因此,在32位,sizeof(int)== sizeof(* T),但不在win64中。

在构建脚本,命令行和预处理器定义中查找矛盾的体系结构。

答案 1 :(得分: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 ...你需要使用'old'devkit,我相信,最近它被重命名为'tdm',适用于1.9.x和1.8.7(我最初在那里解释信息页面意味着tdm是针对1.8.x的,因为浏览太快并且过去这么多次这样做了,并且关于语言本身的事实,1.9更兼容到2.0比1.8是1.9)。

在你的第二次尝试中(在你对另一个答案的评论中注明),你转而使用ruby 2.0,你的宝石可能与它不相容,idk,这是一个完整的蠕虫。