我正在玩Rubygame。我用Mac Pack安装它,现在我有了rsdl可执行文件。 rsdl game.rb
工作正常,但是当我chmod + x rb文件时,将shebang添加到rsdl(尝试直接路径和/ usr / bin / env rsdl)并尝试执行它(./game.rb
),它开始在终端和试图打开的rsdl之间闪烁,最终放弃并给出bus error
。任何人都知道是什么造成的?如果它有所作为的话,我会使用Snow Leopard(10.6.2)。
感谢。
答案 0 :(得分:1)
我认为这是嵌入式ruby的问题。 Ruby有一个可怕的黑客处理shebang执行,基本上它在可执行文件名称中寻找“ruby”(即argv [0])。如果你的嵌入式ruby可执行文件的名称中没有“ruby”,那么这个hack就会失败,并且你会得到一个无限循环(如果重命名它,即使使用了ruby也会出现这种情况)。假设这是这种情况,你可以sym-link或mv rsdl到rsdl-ruby(或类似的),将你的shebang改为#!/usr/bin/env rsdl-ruby
,它会起作用。
答案 1 :(得分:0)
rsdl期望您执行的位置(即来自可执行文件而不是游戏文件)可能存在问题。我发现的方法是弹出rsdl可执行文件(假设它只是一个ruby脚本),然后在里面戳。我认为知道你为什么要尝试从ruby脚本中执行独立操作也很有用。