位元詩人 [Lua] 程式設計教學:建置開發環境

Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

由於 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 語法。

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。