From: ShingoKintaka Date: 2010-01-14T15:18:49+09:00 Subject: [ruby-list:46770] Re: WindowsでGUIなRuby実行ファイルの作り方について 自己レスです。 WideStudioに限らず、Windows上でGUIな実行ファイルをexerbするアイデアの書き込みでもOKです。 目的は、Rubyを利用したGUIアプリケーションをexeファイルにする手法のアイデアを頂きたいので。 ShingoKintaka さんは書きました: > Windows上(XP/Windows7)で開発したWideStudioアプリケーション(Ruby)につ > いて、みなさんどのように実行ファイルを作成されているのか、アイデアを頂き > たく投稿します。 > 長文です。 > > 私はWideStudioをRubyで利用しています。 > 利用しているRubyはActiveScriptRubyです。 > > <環境> > OS   : Windows7/XP > WideStudio: v398-3a > Ruby : ActiveScriptRubyの最新版 > コンパイラ : ActiveScriptRubyに付属しているexerb > > 私はWideStudioとRubyの組み合わせで自分用のツールを作っており、たまにそれ > を同僚や知人に配布することがあります。 > この時、当然ながら同僚や知人のパソコンにWideStudioがインストールされてお > りません。 > exerbを利用してWideStudioプロジェクトをコンパイルする事を試行錯誤してた > どり着いた方法が下記になります。 > > □コンパイル > 1・WideStudioでRubyによるアプリケーションを開発する > 2・「プロジェクト名.rb」を編集して、loadの部分をrequireに変更 > 3・「プロジェクト名.rb」を引数にしてmkexyコマンドを実行 >  ※コマンド実行結果、「プロジェクト名.exy」が作成される > 4・「プロジェクト名.exy」を引数にしてexerbコマンドを実行 > > □配布用インストーラ作成 > ・WindowsフォルダにあるWideStudioのDLLファイルを全てコピー > ・作成したRubyが利用するであろうDLLファイルを実行ファイルと同じパスに全 > てコピー > ※インストーラーはフリーの物を利用して作っています。 > > 作り方の情報源は下記のサイトです。 > http://d.hatena.ne.jp/kamuycikap/20090814/1250210906 > > <問題1> > 情報源により行った実行ファイル作成には問題があります。 > それは、「プロジェクト名.rb」のload部分をrequireに書き換えないと、実行 > ファイルを動かしたときにエラーになることです。 > loadのままでも手順を踏めば実行ファイルは出来上がります。 > しかしながら実行するとエラーを吐いてプログラムが止まってしまうのです。 > > <問題2> > requireに書き換えると動作する実行ファイルが作成出来るのですが、ここでも > 問題が発生します。 > mkexyコマンドはコンパイルするのに必要な情報を収集(ライブラリ等)しレシピ > ファイルとして保存するプログラムだと思っています。 > mkexyをを実行するとレシピファイルを作成する為にアプリケーションが起動す > るのですが、作成アプリケーションの全ての動作を実行してから終了しないと、 > 正しく動作するプログラムの実行ファイルにならないのです。 > つまり、全ての動作を実行しないと、正しくライブラリ情報を取得することが出 > 来ていない模様です。 > ※この問題に関しては、WideStudioが問題なのではなく、mkexyコマンドの仕様で > ある可能性もあるのですが、この現象についてメンバーの中に解決作を知ってい > る人がいるかもしれないと思い記述しました。 > ※実行ファイルを作成する度に、全てのアプリ操作を行うのは効率が悪いです。 > > 以上が私がWindows上でRubyを利用したWideStudioプロジェクトをコンパイルす > る手順と感じている問題になります。 > Windows上でWideStudioをRubyで利用しているメンバーの方々は、どのようにし > て実行ファイルにしているのでしょうか? > また、そのアプリケーションを配布する時、どのようにして配布しているので > しょうか? > > 同じような事を行っている方がいらっしゃいましたら、アイデアを頂きたいと思 > います。 > > >