[QtRuby] QtRubyで作ったをスクリプトのEXE化に挑戦してみた2

前回の“カレントディレクトリをQtRubyにしてしまう方法”はあまりにもアレすぎたので、英語苦手だけど仕方なく本家を見てみた。

OCRA executables clear the RUBYLIB environment variable before your script is launched.

前回、$LOAD_PATHなんか調べちゃったけど、わざわざそんなことしなくてもクリアされるってきっちり書いてくれてた罠。

さらに、

OCRA executables set the RUBYOPT environment variable to the value it had when you invoked OCRA. For example, if you had “RUBYOPT=rubygems” on your build PC, OCRA ensures that it is also set on PC’s running the executables.

ってことで、なんかよくわからないけど、環境変数RUBYOPTにrubygemsを設定しろってさ。書いてるやーん。

1. 念のために試す

環境変数RUBYOPTを設定したくなかったので、require文を書くことで対応した。

helloworldGUI2.rb
require 'rubygems'  # この行を追加
require 'qt4'
exit if defined?(Ocra)

app = Qt::Application.new(ARGV)
w = Qt::Label.new("Hello World.")
w.show
app.exec

で、変換。

$ ocra helloworldGUI2.rb

えぇえぇ。上手くいきましたさ・・・

2. 最後に・・・

実際に使う場合は、オプションを設定した方が良い感じになる。

$ ocra helloworldGUI2.rb --windows

"--add-all-core"や"--no-autoload"はつけるべきかよくわかってないので、この辺りは環境に合わせて試行錯誤でいいんじゃないかな。



はあ、長かった・・・
英語出来ないのつらい・・・