Lua 歡迎使用 Lua 5.4

關於 Lua

Lua 是一種強大、高效、輕量級的嵌入式腳本語言,由 團隊 在巴西里約熱內盧教皇天主教大學 (PUC-Rio) 開發。Lua 是一種 免費軟體,用於世界各地的 許多產品和專案

Lua 的 官方網站 提供關於 Lua 的完整資訊,包括 執行摘要 和更新的 文件,特別是 參考手冊,它可能與此套件中分發的 本機副本 略有不同。

安裝 Lua

Lua 以 原始碼 形式分發。您需要在使用之前建立它。建立 Lua 應該很簡單,因為 Lua 是用純 ANSI C 實作的,並且在已知具有 ANSI C 編譯器的所有平台上未經修改地編譯。Lua 也未經修改地編譯為 C++。以下給出的建立 Lua 說明適用於類 Unix 平台,例如 Linux 和 Mac OS X。另請參閱 其他系統的說明自訂選項

如果您沒有時間或意願自行編譯 Lua,請從 LuaBinaries 取得二進位檔。

建立 Lua

在最常見的類 Unix 平台中,只需執行 "make"。以下是詳細資訊。

  1. 開啟終端機視窗並移至頂層目錄,其名稱為 lua-5.4.6Makefile 控制建立程序和安裝程序。

  2. 執行 "make"。Makefile 將猜測您的平台並為其建立 Lua。

  3. 如果猜測失敗,請執行 "make help" 並查看您的平台是否在清單中。目前支援的平台為

    guess aix bsd c89 freebsd generic ios linux linux-readline macosx mingw posix solaris

    如果您的平台在清單中,只需執行 "make xxx",其中 xxx 是您的平台名稱。

    如果您的平台不在清單中,請按此順序嘗試最接近的平台或 posix、generic、c89。

  4. 編譯僅需幾分鐘,並在 src 目錄中產生三個檔案:lua(直譯器)、luac(編譯器)和 liblua.a(函式庫)。

  5. 若要檢查 Lua 是否已正確建立,請在建立 Lua 後執行 "make test"。這將執行直譯器並列印其版本。

如果您執行 Linux,請嘗試「make linux-readline」來建置互動式 Lua 解譯器,並具備便利的行編輯和記錄功能。如果您遇到編譯錯誤,請確認您已安裝 readline 開發套件(名稱可能是 libreadline-devreadline-devel)。如果之後遇到連結錯誤,請嘗試「make linux-readline MYLIBS=-ltermcap」。

安裝 Lua

建置 Lua 之後,您可能想要將其安裝到系統中的正式位置。在此情況下,請執行「make install」。正式位置和安裝檔案的方式定義在 Makefile 中。您可能需要適當的權限才能安裝檔案,因此可能需要執行「sudo make install」。

若要一次建置和安裝 Lua,請執行「make all install」或「make xxx install」,其中 xxx 是您的平台名稱。

若要在建置後將 Lua 安裝到本機,請執行「make local」。這將建立一個目錄 install,其中包含子目錄 binincludelibmanshare,並如下所列安裝 Lua。若要將 Lua 安裝到本機,但安裝到其他目錄,請執行「make install INSTALL_TOP=xxx」,其中 xxx 是您選擇的目錄。安裝會從 srcdoc 目錄開始,因此如果 INSTALL_TOP 不是絕對路徑,請小心。

bin
lua luac
include
lua.h luaconf.h lualib.h lauxlib.h lua.hpp
lib
liblua.a
man/man1
lua.1 luac.1

這些是您開發時唯一需要的目錄。如果您只想執行 Lua 程式,您只需要 binman 中的檔案。在 C 或 C++ 程式中嵌入 Lua 需要 includelib 中的檔案。

自訂

透過編輯檔案,可以自訂三種類型的項目

您實際上不需要編輯 Makefiles,因為您可以在呼叫 make 時在命令列中設定相關變數。不過,最好編輯並儲存 Makefiles,以記錄您所做的變更。

另一方面,如果您需要自訂一些 Lua 功能,您需要在建置和安裝 Lua 之前編輯 src/luaconf.h。已編輯的檔案會是安裝的檔案,並且會由您建置的任何 Lua 用戶端使用,以確保一致性。專家可以透過編輯 Lua 來源進一步自訂。

在其他系統上建置 Lua

如果您沒有使用一般的 Unix 工具,則建置 Lua 的說明取決於您使用的編譯器。您需要為建置函式庫、解譯器和編譯器建立專案(或您的編譯器使用的任何專案),如下所示

函式庫
lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lcorolib.c ldblib.c liolib.c lmathlib.c loadlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c linit.c
直譯器
函式庫,lua.c
編譯器
函式庫,luac.c

要在您自己的程式中使用 Lua 作為函式庫,您需要知道如何使用編譯器建立和使用函式庫。此外,要動態載入 Lua 的 C 函式庫,您需要知道如何建立動態函式庫,並且您需要確保 Lua API 函式對這些動態函式庫是可存取的 — 但不要將 Lua 函式庫連結到每個動態函式庫中。對於 Unix,我們建議將 Lua 函式庫靜態連結到主程式中,並將其符號匯出以進行動態連結;src/Makefile會針對 Lua 直譯器執行此動作。對於 Windows,我們建議 Lua 函式庫為 DLL。在所有情況下,編譯器 luac 都應靜態連結。

如上所述,您可以在建立 Lua 之前編輯 src/luaconf.h 以自訂一些功能。

Lua 5.3 之後變更

以下是 Lua 5.4 中引入的主要變更。參考手冊列出了必須引入的不相容性

主要變更

授權

[osi certified] Lua 是根據以下重製的 MIT 授權條款所發布的免費軟體;它可用於任何目的,包括商業用途,完全免費,無需詢問我們。唯一的條件是,如果您確實使用 Lua,則應在您的產品或其文件中的某個地方包含適當的版權聲明,以表示對我們的肯定。有關詳細資訊,請參閱此處

版權所有 © 1994–2023 Lua.org、PUC-Rio。

在此免費授予任何取得本軟體及其相關文件(以下稱「軟體」)副本的人員,不受限制地處理本軟體的權限,包括但不限於使用、複製、修改、合併、發布、散布、再授權和/或販售本軟體副本的權利,並允許軟體提供對象在符合下列條件的情況下執行上述動作。

上述版權聲明和本許可聲明應包含於所有軟體副本或其大量部分中。

本軟體「依現況」提供,不提供任何明示或暗示的保證,包括但不限於適銷性、特定用途適用性及非侵權的保證。在任何情況下,作者或版權持有人對於因本軟體或使用或其他處理本軟體而產生的任何請求、損害或其他責任,不論是基於合約、侵權或其他原因,概不負責。