Windows 初學者 Lua 編譯指南 |
|
這是一份分步指南教學,指導如何在 Microsoft Windows 系統上使用免費工具或 Windows 安裝中已有的工具下載並編譯原始碼,以順利執行 Lua。本指南對使用者的程式設計經驗要求不高。對於對 Windows 平台認識不深的 Linux 老手來說,也可能對這份指南感興趣。
如果您是一位經驗豐富的程式設計師,而且覺得這份指南過於簡單或有限,請參閱頁面 BuildingLua,它的技術性更強,且更為詳細。
對讀者的假設前提
上述的假設前提大多不是嚴格的要求,因為在以下說明中,某些程序會被詳細解說,但讀者不應過度依賴這些內容來解惑。
此指南採用循序漸進的步驟組織而成,大綱如下
重要備註:建議您在開始執行程序之前完整閱讀此頁面。請確定您事先已理解其中的所有內容:這有助於您在後續節省一些時間和麻煩。這些程序相當萬無一失(我們希望如此),但誰說得準呢!;-)
注意:已在使用具有管理員權限的帳戶於已安裝 Service Pack 3 (SP3) 的 x86 32 位元電腦(Intel Mobile Core 2 Duo T7500 - 2GB RAM)上測試這些程序。所使用編譯器為 TDM GCC 4.9.2(32 位元版本)。
注意:隨著時間演進,此處包含的一些連結可能已過時。這就是為何下文不僅提供套件的直接連結,而且提供相關應用程式的主要頁面連結。在讀者積極配合下,假設此頁面未更新,應可自行瀏覽網站以適應顯而易見的變更(例如,連結中的未來版本編號予以補償)。
我們將使用 TDM 開放原始碼 GCC 編譯器的 Windows 轉譯版本。下載頁面見 [2],以下是我們需要的套件的直接連結: [3]。按一下前述連結,遵照指示,然後等待下載完成。已下載檔案應為 tdm-gcc-4.9.2.exe
。下載約 30 MB,請務必確定網路連線速度夠快。
為避免可能的錯誤發生,請務必確定已下載套件位於完整路徑不包含空白的目錄 (資料夾) 中。如果不是此情況,請將其複製或移至符合此項需求的目錄。我們將下載的所有套件都應結束於此目錄(我們將其用作整個教學課程的暫時工作目錄)。
在本教學課程中,我們將假設您已建立以下資料夾作為工作目錄:
C:\gcc-lua-install
如果您一開始並未於此處下載安裝套件,請將您剛剛下載的安裝套件複製 (或移動) 至工作目錄。現在,我們的工作目錄應有以下內容:
C:\gcc-lua-install\tdm-gcc-4.9.2.exe
Lua 原始碼下載頁面見 [4]。這是撰寫本文章時最新版本的直接下載連結: [5]。按一下前述連結,遵照指示,然後等待下載完成。請務必確定您下載的檔案位於 C:\gcc-lua-install
目錄中(或於下載後,將其複製或移至該目錄,後文將不再重複說明)。
現在工作目錄中有兩個檔案:
C:\gcc-lua-install\tdm-gcc-4.9.2.exe C:\gcc-lua-install\lua-5.3.0.tar.gz
Lua 原始碼打包於在 Linux 平台上十分常見,但在 Windows 上並不常見的檔案格式中:TAR-GZ 格式,由檔案的雙重副檔名 .tar.gz 暗示。Windows 作業系統無法原生解壓縮此格式,所以我們需要一個可以解壓縮的程式。有能力處理 TAR-GZ 檔案 (以及許多其他壓縮格式) 的 Windows 免費壓縮/解壓縮通用強效程式為 [7-zip]。
由於我們希望讓這個過程盡可能簡單,所以我們不會使用原始的 7-zip 安裝程式,因為後者會在安裝時修改系統。我們會改用 [PortableApps.com] 封裝的備用「發行版」,並從頁面上取得:[6]。按一下下載連結、依照指示進行操作,並等待下載完成。請確定這個檔案也位於我們的工作目錄中。
現在我們的工作目錄中有三個檔案
C:\gcc-lua-install\tdm-gcc-4.9.2.exe C:\gcc-lua-install\lua-5.3.0.tar.gz C:\gcc-lua-install\7-ZipPortable_9.20_Rev_3.paf.exe
現在使用 Windows 的圖形檔案管理程式「Windows 檔案總管」(這不是 Internet Explorer!)瀏覽我們的工作目錄,並在 tdm-gcc-4.9.2.exe
上按兩下來執行編譯器的安裝程式。應該會出現一個對話方塊。
C:\gcc-lua-install\tdm-gcc
為安裝目錄。
我們的工作目錄的目前內容現在應該是
C:\gcc-lua-install\tdm-gcc-4.9.2.exe C:\gcc-lua-install\lua-5.3.0.tar.gz C:\gcc-lua-install\7-ZipPortable_9.20_Rev_3.paf.exe C:\gcc-lua-install\tdm-gcc
其中最後一項為編譯器目前已安裝的子目錄(請注意,在 Windows 檔案總管中,這些項目可能會以不同的順序顯示)。
現在在我們的工作目錄中,在檔案 7-ZipPortable_9.20_Rev_2.paf.exe
上按兩下,執行 7-zip 可攜式安裝程式。應該會出現一個對話方塊。
C:\gcc-lua-install\7zip
為目的地資料夾。我們的工作目錄的目前內容現在應該是
C:\gcc-lua-install\tdm-gcc-4.9.2.exe C:\gcc-lua-install\lua-5.3.0.tar.gz C:\gcc-lua-install\7-ZipPortable_9.20_Rev_3.paf.exe C:\gcc-lua-install\tdm-gcc C:\gcc-lua-install\7zip
其中最後一項為 7-zip 目前已安裝的子目錄。
C:\gcc-lua-install\7zip
),並在檔案 7-ZipPortable.exe
上按兩下。這會執行 7-zip,並開啟該程式的主要視窗,它很像 Windows 檔案總管。C:\gcc-lua-install
,然後按一下Return)。lua-5.3.0.tar.gz
),您會看到套件的「內部」結構,是一個稱為 lua-5.3.0.tar
的單一資料夾。lua-5.3.0.tar
,您會「進入」該資料夾,並看到另一個名為 lua-5.3.0
的資料夾。lua-5.3.0
,會出現一個內容選單。從該選單中選取 拷貝到... 選項。會出現一個標題為 拷貝 的對話框。C:\gcc-lua-install
) 做為目的地,然後按一下 確定。現在瀏覽工作目錄並檢查該目錄:應該有一個新子目錄,名為 lua-5.3.0
。
我們的工作目錄的目前內容現在應該是
C:\gcc-lua-install\tdm-gcc-4.9.2.exe C:\gcc-lua-install\lua-5.3.0.tar.gz C:\gcc-lua-install\7-ZipPortable_9.20_Rev_3.paf.exe C:\gcc-lua-install\tdm-gcc C:\gcc-lua-install\7zip C:\gcc-lua-install\lua-5.3.0
最後一個項目是已解壓縮 Lua 來源的子目錄。
build.cmd
的文字檔,然後將以下文字複製並貼進該文字檔。
@echo off :: ======================== :: file build.cmd :: ======================== setlocal :: you may change the following variable's value :: to suit the downloaded version set lua_version=5.3.0 set work_dir=%~dp0 :: Removes trailing backslash :: to enhance readability in the following steps set work_dir=%work_dir:~0,-1% set lua_install_dir=%work_dir%\lua set compiler_bin_dir=%work_dir%\tdm-gcc\bin set lua_build_dir=%work_dir%\lua-%lua_version% set path=%compiler_bin_dir%;%path% cd /D %lua_build_dir% mingw32-make PLAT=mingw echo. echo **** COMPILATION TERMINATED **** echo. echo **** BUILDING BINARY DISTRIBUTION **** echo. :: create a clean "binary" installation mkdir %lua_install_dir% mkdir %lua_install_dir%\doc mkdir %lua_install_dir%\bin mkdir %lua_install_dir%\include copy %lua_build_dir%\doc\*.* %lua_install_dir%\doc\*.* copy %lua_build_dir%\src\*.exe %lua_install_dir%\bin\*.* copy %lua_build_dir%\src\*.dll %lua_install_dir%\bin\*.* copy %lua_build_dir%\src\luaconf.h %lua_install_dir%\include\*.* copy %lua_build_dir%\src\lua.h %lua_install_dir%\include\*.* copy %lua_build_dir%\src\lualib.h %lua_install_dir%\include\*.* copy %lua_build_dir%\src\lauxlib.h %lua_install_dir%\include\*.* copy %lua_build_dir%\src\lua.hpp %lua_install_dir%\include\*.* echo. echo **** BINARY DISTRIBUTION BUILT **** echo. %lua_install_dir%\bin\lua.exe -e"print [[Hello!]];print[[Simple Lua test successful!!!]]" echo. pause
我們的工作目錄的目前內容現在應該是
C:\gcc-lua-install\tdm-gcc-4.9.2.exe C:\gcc-lua-install\lua-5.3.0.tar.gz C:\gcc-lua-install\7-ZipPortable_9.20_Rev_3.paf.exe C:\gcc-lua-install\tdm-gcc C:\gcc-lua-install\7zip C:\gcc-lua-install\lua-5.3.0 C:\gcc-lua-install\build.cmd
現在,連續按兩下 build.cmd
,執行 shell script,會出現一個背景為黑色的視窗。您會在視窗中看到 script 運作時產生的訊息 (大部分是 Lua 來源編譯期間的 GCC 訊息)。
這可能會花一點時間,但會大幅取決於您的電腦效能。在我們的測試系統中,大約需要一分鐘,但那是一個相當老舊的系統。編譯完成後,script 也會在工作目錄中建立一個「乾淨」的二進制發行版 (亦即不包含不必要的來源檔案),並執行一個簡單的測試,在終止之前會印出一個歡迎訊息。您可以在黑色視窗中,看到輸出的最後面有這個說明性訊息。現在您可以關閉黑色視窗了。
我們的工作目錄的目前內容現在應該是
C:\gcc-lua-install\tdm-gcc-4.9.2.exe C:\gcc-lua-install\lua-5.3.0.tar.gz C:\gcc-lua-install\7-ZipPortable_9.20_Rev_3.paf.exe C:\gcc-lua-install\tdm-gcc C:\gcc-lua-install\7zip C:\gcc-lua-install\lua-5.3.0 C:\gcc-lua-install\build.cmd C:\gcc-lua-install\lua
目錄 C:\gcc-lua-install\lua
現在包含執行 Lua script 所需的一切。您可以將此目錄及其內容拷貝至任何您覺得方便的地方 (甚至拷貝到 USB 隨身碟中!) Lua 二進制安裝目錄的內部結構應該是以下這樣
lua-----+--bin | +--doc | +--include
在 bin
子目錄中,您會找到 lua.exe
,也就是 Lua 詮釋器 (如果您連續按兩下,它會以互動模式執行),而在 doc
子目錄中,您會找到 Lua 參考手冊。
如果您想要能夠輸入
lua myscript.lua
以從指令列執行 myscript.lua
,您必須將 Lua bin 子目錄放在 Windows PATH 環境變數中。
將 lua
子目錄拷貝到其最終位置後,您可以完全刪除工作目錄及其所有內容。
但是,您可以輕鬆保留許多有用的項目
lua-5.3.0.tar.gz
、tdm-gcc-4.9.2.exe
與 7-ZipPortable_9.20_Rev_3.paf.exe
可以儲存起來以備不時之需或備份用途。tdm-gcc
可以複製或移動到您要的任何位置(小心不要放置在目錄名稱中有空白字元的目錄),且裡面 tdm-gcc\bin
的工具可直接從命令列執行(然而,若要避免指定其完整路徑名稱,您必須將 tdm-gcc
加到 Windows 路徑中)。7-ZipPortable.exe
執行檔來啟動 7-zip。它如此輕巧,甚至可以完美地放入隨身碟中!
目錄並查看 Lua 來源碼,但您必須是 C 程式設計師才能理解其中的大部分!
已驗證以下設定能正常操作這些說明
2019-11-23 在 Windows 10 上的 tdm-gcc-5.1.0-3
、lua-5.3.5
2020-03-11 在 Windows 10 上的 tdm64-gcc-9.2.0
、lua-5.3.5
2022-07-31 在 Windows 10 上的 tdm64-gcc-10.3.0
、lua-5.4.4