前言
由於 Lua 是內嵌語言,如果讀者使用 Corona SDK 或其他的遊戲引擎的話,這些遊戲引擎就會內嵌 Lua 直譯器,不需另外安裝。本文以讀者要學習 Lua 語法為出發點,介紹建置開發環境的過程。
Lua 線上編輯器
如果只是想學一下 Lua 的語法,可以在 repl.it 或是 glot.io 的 Lua 線上編輯器玩一下。這兩個版本比官方的版本更好,在於這個版本有語法色彩 (syntax highlighting),比較易於閱讀程式碼。對於初期的語法學習,這兩個線上環境應該是夠了。
支援 Lua 的編輯器或 IDE
ZeroBrane Studio
如果想要在本地端寫 Lua 程式,筆者推薦 ZeroBrane Studio。這套 IDE 內建 5.1、5.2、5.3、LuaJIT 等數個主流版本的 Lua 直譯器,可以直接用內附的 Lua 直譯器來練語法,省去安裝 Lua 的步驟。
此外,這套軟體支援數個 Lua 相關的遊戲引擎,包括 Corona 和 Cocos2d-x 等,之後要轉換軟體時,也不需要重學 IDE。
其他編輯器
以下是一些支援 Lua 的編輯器:
- Visual Studio Code 搭配 vscode-lua
- Atom
- Notepad++ (Windows only)
- Decoda (Windows only)
讀者可花一些時間自行試用看看,選順手的即可。
luaenv
如果不想用 ZeroBrane Studio 內建的 Lua,在類 Unix 平台上可用 luaenv
管理 Lua 版本。由於 luaenv
是以 Bash 撰寫,Windows 平台無法使用 luaenv
。
安裝 luaenv
用 Git 下載 luaenv:
$ git clone https://github.com/cehoffman/luaenv.git ~/.luaenv
將 ~/.luaenv/bin 加入 PATH 環境變數:
$ echo 'export PATH="$HOME/.luaenv/bin:$PATH"' >> ~/.bash_profile
在設定檔中加人 luaenv init
:
$ echo 'eval "$(luaenv init -)"' >> ~/.bash_profile
安裝 lua-build,簡化日後編譯和安裝 Lua 的步驟:
$ git clone git://github.com/cehoffman/lua-build.git ~/.luaenv/plugins/lua-build
安裝 luaenv-luarocks,這是 Lua 的套件管理程式 (選擇性):
$ git clone https://github.com/xpol/luaenv-luarocks.git ~/.luaenv/plugins/luaenv-luarocks
由於 Lua 社群套件不多,而且在寫 Corona 等遊戲時無法使用這些套件,不裝 LuaRocks 其實無妨。
使用 luaenv
使用 luajit install -l
顯示可安裝的 Lua 版本:
$ luaenv install -l
Available versions:
5.1.5
5.2.1
5.2.2
5.2.3
5.2.4
5.3.0
5.3.1
5.3.2
5.3.3
luajit-2.0.1
luajit-2.0.1-p1
luajit-2.0.2
luajit-2.0.3
luajit-2.0.4
luajit-2.0.5
luajit-2.0-dev
luajit-2.1.0-beta2
luajit-2.1.0-beta3
luajit-2.1-dev
luvit-0.6.0
luvit-0.6.1
luvit-dev
使用 luaenv install
安裝特定版本的 Lua:
$ luaenv install luajit-2.0.5
可以順便安裝 LuaRocks,這是 Lua 的套件管理程式。如果要安裝 LuaRocks,需要額外安裝官方版本的 Lua:
$ luaenv install 5.1.5
$ luaenv global luajit-2.0.5
$ luaenv luarocks
Scoop
Scoop 是一個 Windows 上的新興套件管理軟體。包含 Lua 5.1 版的套件,輸入一行指令即可安裝:
C:\> scoop install lua
不過,筆者在試用時,發現這個套件內附的 LuaRocks 無法使用,這是因為 LuaRocks 內的套件需要一些環境變數的原因。如果讀者是為了在 Windows 上使用 LuaRocks,比較推薦的方式是到 LuaRocks 的官方連結 下載並解開壓縮包,然後在命令列輸入以下指令:
C:\path\to\package\> .\install.bat /L
這樣會用該壓縮包內附的 Lua 5.1 版來搭配 LuaRocks。
編譯 Lua
如果仍然想要自行編譯安裝 Lua 直譯器,可到 Lua (或 LuaJIT) 官方網站下載 Lua 原始碼自行編譯,視自己需求的版本而定。在類 Unix 平台上建議使用前述的 luaenv,這裡介紹在 Windows 下編譯 Lua 的過程。
到 LuaJIT 官網下載 LuaJIT 原始碼,在本文撰寫時,最新穩定版本為 2.0.5。下載 ZIP 檔後將其解壓縮。
由於 Lua (或 LuaJIT) 僅用到 ANSI C,不論使用 Visual Studio 附的 C 編譯器或是 MinGW 的 GCC 皆可編譯 LuaJIT。在這裡,我們使用 Visual Studio 社群版。
安裝好 Visual Studio 後,開啟「x64 Native Tools Command Prompt」終端機視窗,移動到 LuaJIT 所在的資料夾,輸入以下指令:
C:\path\to\lua> cd src
C:\path\to\lua\src> msvcbuild.bat
編譯成功後,所需的執行檔和其他檔案皆位於 src 目錄中;將整個 src 資料夾移動到任意位置,並修改 PATH 變數即可。
(選擇性) 安裝開發相關工具
雖然一般的程式設計書籍不強調開發工具,但適時地使用開發工具可以讓我們撰寫程式的過程更順利。一些常見的功能包括程式碼重排或靜態程式碼檢查等。我們在這裡介紹一些 Lua 相關開發工具,有興趣的讀者可以參考一下。
Hello World 程式
Hello World 程式用來確認開發環境是否可正常運行。接下來,我們撰寫一個 Lua 版本的 Hello World 程式,以熟悉撰寫 Lua 程式的流程。
建立一個文字檔案,名為 hello.lua ,加入以下內容:
print("Hello World")
從命令列環境執行此命令稿:
$ lua hello.lua
Hello World
若使用 LuaJIT,將 Lua 直譯器改為 luajit
即可。直接從 ZeroBrane Studio 內執行命令稿也可。若看到 Hello World
字串,表示 Lua 環境已經建立好。建置開發環境後,就可以開始學習 Lua 語法。