Skip to content
This repository was archived by the owner on Jun 6, 2020. It is now read-only.
raduwen edited this page Oct 11, 2012 · 3 revisions

====

EXEの作り方

完成したプログラムをexeに固めて公開してみたい方も多いかと思います。そんな方向けにocraというgemがあります。

gemとはRubyのライブラリを固めた宝石です。rubygemsというライブラリで簡単に管理できるようになっています。

ただしコマンドプロンプトでの操作になります。

まずWindowsキーとRを同時に押してcmdと入力しENTERを押します。

すると黒い画面が出てきます。これがコマンドプロンプトです。これはCUIと言われるものでコマンドでパソコンを操作するものです。 普段はグラフィカル(GUI)なボタンとかで操作してるので抵抗があるかもしれませんが、頑張ってみましょう。

まず画面に今のフォルダが表示されています。恐らくWindows7の方ならスタートメニューからユーザー名のフォルダを開いたところにいます。

ドキュメント(C:\Users\username\Documents)とかに移動するにはcdというコマンドを使います。

cd Documents

cd Dまで入力したところで、Tabキーを押すとDesktopとかDocumentsとかDownloadsとか色々補完されるので便利です。

同じドライブ内であれば、cdとスペースまで入力してフォルダをドラッグ&ドロップしてあげれば絶対パスがババっと入力され簡単に移動もできます。

RubyGemsを使う

RubyGemsを使うにはgemコマンドを使います。

gem

とか入力すると使い方が出てきます。

gem install ???     ???というgemをインストールする
gem list            インストール済のgemを表示

この二つさえわかっていれば大体問題ないです。

gem server          ドキュメントのサーバーを動かす

serverコマンドは便利コマンドで、インストール済のgemのドキュメントをプログラムから動的に生成してWebで見れるようにしてくれます。 http://localhost:8808/に行くと見れます。

ドキュメントの生成ができずrdocやwwwの部分にリンクが貼られてないこともあります。

ocraをインストールする

ocraはRuby 1.9.xのプログラムをEXEにするものです。 インストールするには次のコマンドを実行します。

gem install ocra

gemはrubygemsのサーバーで管理されているのでダウンロードしてインストールしてくれます。

さて早速

ocra

と入力してみましょう。

うあああああああああああ、なんかいっぱい出たああああああ。オレには無理だあああああああああああああああ。とか思って頂いて大丈夫です。

じゃあ早速EXEにしてみます。 まず、どのプログラムをEXEにするかを指定するのですが、それを簡単にする為にファイルがある場所まで移動します。

cd 場所
例)
cd C:\Users\admin\Desktop\workshop01\kakuge

さっきみたくファイルをコマンドプロンプトにぶっこんでファイル名の部分を消しても移動が簡単にできます。

移動できたら次のコマンドを実行してみてください。※1

ocra ファイル名 --windows
例)
ocra kakuge.rb --windows

するといつものようにプログラムが動きます。動くことが確認できたら終了してください。 終了してしばらくするとコマンドプロンプトに

=== Finished building ファイル名.exe (123456789 bytes)

みたいなものが出てきます。なんと、これだけでEXEが出きちゃってます。 プログラムを置いてたフォルダを確認してみてください。

あとは必要な画像やらREADMEやらLicenseのファイルをまとめて圧縮して配布するだけですね。


※1 少し注意が必要な点があります。他の環境で実行する時に???.dllというファイルが必要なことがあります。 これは使用しているライブラリとかによって決ってきます。

2012/10/12 追記

ocra --windows --no-autodll ファイル名 

のようにするとdllも埋め込んでくれるます。こっちの方が容量は大きくなりますが他の環境で動かすとき便利かもしれません。


Home | ファイル操作 - EXEの作り方

Clone this wiki locally