Exerbを試してみた
Exerb はRubyスクリプトをWindows実行形式である exe に変換してくれるもの。
Exerb Projectから最新版の tar.gz を拾ってきて解凍。出来たフォルダをまるごと C:\Ruby\source(僕のRubyスクリプト倉庫) にもって行く。そしてコマンドプロンプトから以下のコマンドを実行。
ruby exerb/setup.rb config ruby exerb/setup.rb setup ruby exerb/setup.rb install
なんか最初は install が上手く実行されなくてわけわかだった。色々やってる内にいつのまにかコマンドが通るようになったのだけど、どうしてそうなったのかは見当がつかない。コマンドミス?だったとは思えないくらい試したのだけど、コマンドミスだったのかなぁ。。
上記のインストールコマンドが無事に通ったら
ruby -r exerb/mkexr test.rb ruby c:\ruby\bin\exerb test.exr
とすることで exe に変換できる。
Ruby/SDLが面白そうなのでちょっと勉強し始めてみてる。Exerb を試してみたのは、他人に配布する場合を考えてのこと。でも僕のつくったファイルはなぜかすぐに窓が閉じちゃってまともに動かない。Rubyスクリプトの状態ならちゃんと動くのに、exe になったらとんだ暴れ馬になっちょりまんがな。せっかく意味の分からないエラーと戦って Exerb 使えるようになったのにいみねー(´・ω・`)
exe をコマンドプロンプトから実行してみて、エラーを吐かれてることに気づく。「sdl.rb:3: uninitialized constant SDL (NameError)」。なんでこんなことで怒られるんだ。ちゃんと require してるぞ。SDL は使うなってこと??どうしていいものだかさっぱり分からないよ orz
We retire raa.ruby-lang.orgを拾ってきて使ってみた。
ruby rubyscript2exe.rb test.rb
だけで exe をつくれる。Exerb よりも大分手軽だ。でもファイルサイズは3倍くらいに増えた。うーむ。
Exerb の問題が解決した。問題は sdl.rb なんて紛らわしい名前のファイルを僕がつくっていたことだった。こいつが test.rb と同パス上にあるせいで、exe からのSDLライブラリの参照が上手くいっていなかった模様。予約語じゃないけどライブラリ名とかぶっちゃうような名前をつけるのはまずいなと反省。何はともあれ Exerb と SDL が共存できるようになってよかった。今日の内にそれが解決できてよかった。ヤッホイ(・∀・)