Lua 程式設計教學:建置環境

PUBLISHED ON DEC 24, 2017 — PROGRAMMING

    線上編輯器

    如果只是想學一下 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。

    其他編輯器

    • Visual Studio Code 搭配 vscode-lua
    • Atom
    • Notepad++ (Windows only)
    • Decoda (Windows only)

    luaenv

    如果不想用 ZeroBrane Studio 內建的 Lua,在類 Unix 平台上可用 luaenv 管理 Lua 版本。由於 luaenv 是以 Bash 撰寫,Windows 平台無法使用。

    安裝 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
    

    使用 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 變數即可。

    Hello World

    接下來,我們用 Hello World 程式熟悉撰寫 Lua 程式的流程。

    建立一個文字檔案,名為 *hello.lua*,加入以下內容:

    print("Hello World")

    執行此命令稿:

    $ lua hello.lua
    Hello World
    

    若使用 LuaJIT,將指令改為 luajit 即可。直接從 ZeroBrane Studio 內執行命令稿也可。若看到 Hello World 字串,表示 Lua 環境已經建立好。建置開發環境後,就可以開始學習 Lua 語法。