Luaのコンパイルから実行まで

環境:Windows7 Home Premium on VirtualBox3.2.10 r66523


Luaが前から気になっていたので使ってみようかと思い立ちました。思い立ったが吉日。
Lua BinariesGoogle Code Archive - Long-term storage for Google Code Project Hosting.でインストールすればすぐにでも使えるけど……
MinGWもインストールしたかったし、せっかくならLuaも一緒にコンパイルしてしまえー。
というわけでその時のメモです。

MinGW/MSYSインストーラのダウンロード

MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.netからmingw-get-inst-20101030.exeをダウンロードしてきます。新しいバージョンのインストーラがある場合はそちらを使うとよろしいかと。


Windows以外のOSからダウンロードする場合、ツリーがごちゃごちゃしていてわかりにくいですが

  • Automated MinGW Installer
    • mingw-get-inst-20101030

の下にあります。

MinGW/MSYSのインストール

インストーラをダウンロードしたら、実行してウィザードを進めていきます。


ウィザードの途中にあるSelect Componentsでは

  • MSYS Basic System
  • MinGW Developer Toolkit

を選択しましょう。

Luaソースコードをダウンロード、展開、パッチを当ててコンパイル

Lua: downloadからlua-5.1.4.tar.gzとpatch-lua-5.1.4-2をダウンロードします。


ダウンロードしたらアーカイブを展開します。コマンドラインからtarコマンドを使いますが、環境変数を通すのが面倒なのでcmd.exeは使わずにMSYSを使います。

  • スタート

とたどってMSYSを起動させると、好き嫌いの分かれる黒い画面が表示されます。私は大好きです。


コマンドラインに以下を打っていきます。ディレクトリへ移動、アーカイブの展開。

$ cd (ソースコードをダウンロードしたディレクトリ)
$ tar xvfz lua-5.1.4.tar.gz


ソースのあるディレクトリまで移動して、パッチを当てて……

$ cd lua-5.1.4/src
$ patch < ../../patch-lua-5.1.4-2


1つ上のディレクトリに移動してからコンパイル

$ cd ../
$ make mingw

Luaを動かしてみる

コンパイルに成功するとsrcディレクトリに

  • lua.exe
  • lua51.dll
  • luac.exe

の3つのファイルが生成されるのでファイルを移動します。

$ cd src
$ mv lua.exe lua51.dll luac.exe ../../
$ cd ../../


さあ、お待ちかねのLuaの時間です。
やっぱり最初は"Hello, World!"ですよね。

$ echo 'print("Hello, World!")' > hello.lua
$ lua.exe hello.lua
Hello, World!


luac.exeでスクリプトをバイトコンパイルしてから実行することもできます。

$ luac.exe -o hello.luac hello.lua
$ lua.exe hello.luac
Hello, World!


以上、コンパイルから実行まででした。