2010-01-02 87 views
1

我在玩Rubygame。我用Mac Pack安裝了它,現在我有了rsdl可執行文件。 rsdl game.rb工作正常,但是當我chmod + x rb文件,添加shebang到rsdl(嘗試直接路徑和/ usr/bin/env rsdl)並嘗試執行它(./game.rb)時,它開始在終端和rsdl之間閃爍這是試圖打開,並最終放棄,並給出bus error。任何人都知道這是什麼原因?我在雪豹(10.6.2)上,如果它有所作爲。OS X上的Rubygame shebang問題

謝謝。

回答

1

我相信這是一個嵌入式ruby的問題。 Ruby有一個可怕的黑客來處理shebang執行,這基本上是在可執行文件名稱(即argv [0])中尋找「ruby」。如果您的嵌入式ruby可執行文件名稱中沒有「ruby」,則此入侵將失敗,並且您將得到一個無限循環(如果您重命名它,即使使用股票ruby也會發生這種情況)。假設在這裏是這種情況,你可以將sym-link或者mv rsdl改爲rsdl-ruby(或者類似的),把你的shebang改成#!/usr/bin/env rsdl-ruby,它就可以工作。

0

rsdl期望您執行的地方可能存在問題(即來自可執行文件,而不是遊戲文件)。我會發現的方式是彈出打開rsdl可執行文件(假設它只是一個ruby腳本),並在裏面捅一下。我認爲知道爲什麼要嘗試從ruby腳本單獨執行也是有用的。