1

I'm playing around with Rubygame. I installed it with the Mac Pack, and now I have the rsdl executable. rsdl game.rb works fine, but when I chmod +x the rb file, add the shebang to rsdl (tried direct path and /usr/bin/env rsdl) and try to execute it (./game.rb), it starts to flicker between the Terminal and rsdl which is trying to open, and eventually gives up and gives a bus error. Anyone know what's causing that? I'm on Snow Leopard (10.6.2) if it makes a difference.

Thanks.

4

2 に答える 2

1

これは埋め込みルビの問題だと思います。Ruby には、基本的に実行可能ファイル名 (つまり argv[0]) で "ruby" を検索する、シバン実行を処理するための恐ろしいハックがあります。埋め込まれた ruby​​ 実行可能ファイルの名前に「ruby」が含まれていない場合、このハックは失敗し、無限ループが発生します (これは、名前を変更した場合、ストック ruby​​ でも発生します)。これがここに当てはまると仮定すると、sym-link または mv rsdl を rsdl-ruby (または同様のもの) にリンクし、シバンを に変更する#!/usr/bin/env rsdl-rubyと機能します。

于 2010-05-09T04:46:11.463 に答える
0

rsdl が実行を想定している場所 (つまり、ゲーム ファイルではなく実行可能ファイル) に問題がある可能性があります。私が見つける方法は、rsdl実行可能ファイルをポップして開き(それが単なるRubyスクリプトであると仮定して)、内部を突っ込むことです。ruby スクリプトからスタンドアロンで実行しようとしている理由を知ることも役立つと思います。

于 2010-05-09T04:26:13.130 に答える