0

所以,我有一个小 Ruby 程序,它是一个简单的“Hello World”——代码如下

require 'ray'

Ray.game 'Hello world!', :size => [800, 600] do
  register { add_hook :quit, method(:exit!) }
scene :hello do
  @text = text 'Hello, Ruby!', :angle => 30, :at => [100, 100], :size => 30
  render { |win| win.draw @text }
end
scenes << :hello
end

它在我的 Win7-32​​ 位机器上运行良好。然而,当我将完全相同的程序带到我的 Win7-64 位机器上时,Ruby 解释器吐出以下消息:

C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': 127:
The specified procedure could not be found.   - C:/Ruby193/lib/ruby/gems/1.9.1
/gems/ray-0.2.0/lib/ray_ext.so (LoadError)

从错误消息来看,似乎缺少“ray_ext.so”,但实际上它就在那里:

在此处输入图像描述

两台 PC 都安装了完全相同的 Ruby (1.9.3) 版本,并且安装了完全相同的 gems 列表,但是为什么完全相同的程序在 32 位 Win7 上运行良好,但在 64 位 Win7 上却失败了?

我尝试再次重新安装 gem (ray),以及更新 gem 列表,但这并没有解决问题。从我从网上发现的情况来看,这似乎是一个“dll”链接问题(如果我错了,请纠正我),但我不知道如何解决它(对不起,我还是个菜鸟Ruby),除了重新安装 gem - 这不起作用。

还有什么我可以尝试的吗?您认为这纯粹是gem的问题(与Win7-64位不兼容)吗?

谢谢您的帮助。

4

2 回答 2

1

简而言之,使用最新的 Ruby

当我在我的 Windows 7 64bit 上安装 Jekyll 时,我得到了同样的错误(是的,Ruby 的版本是 1.9.3)。直到我将我的 Ruby 更改为 2.0.0(不是 2.0.0-x64)它才消失.

虽然我根本不懂Ruby,但我希望这可以解决你的问题。谢谢你。

于 2013-08-13T02:55:54.287 回答
0

我有问题。我尝试设置指向 oci.dll 的正确 oracle bin 路径,但没有成功。我将 oci.dll 复制到 ruby​​\bin 目录,后来它又给了我另一个错误。我不得不复制 orauts.dll,然后就可以了……该应用程序正常工作。

希望对其他人有所帮助。

于 2016-12-15T00:51:23.973 回答