2013-08-20 59 views
6

您好我有一個Lua程序(用Lua 5.1編寫)。我在Windows 7上,試圖將其轉換爲可執行文件。到目前爲止沒有運氣。我已閱讀其他帖子,建議使用srlua來做到這一點,所以我已經下載了它,但我對下一步該做什麼感到不知所措。我根據我的理解安裝了cygwin,但我不知道如何使用srlua將lua文件轉換爲可執行文件。任何幫助將不勝感激。Windows Lua到可執行文件

+0

使用ThinApp,您可以輕鬆地從一堆lua.exe + lua.dll + script.lua + runme.bat文件中創建獨立的exe文件。 –

回答

9

srlua僅作爲源代碼發佈,因此您必須先編譯它(有關獲取免費C編譯器的建議,請參閱this answer)。

順便說一句,Cygwin根本就沒有必要。上述鏈接將引導您安裝TDM-GCC(GCC編譯器的Windows端口),該端口將創建僅依賴Windows默認系統庫的可執行文件。

一旦你有一個C編譯器,並且你已經編譯了srlua,你將有兩個可執行文件glue.exesrlua.exe。後者只是一個存根,srlua.exe通過將它與你的Lua腳本結合來生成最終的可執行文件。

假設你的腳本是myscript.lua,你想創建一個名爲myexe.exe您必須從命令行調用glue.exe如下的可執行文件:

glue.exe srlua.exe myscript.lua myexe.exe 

我認爲所有相關文件都放在同一個目錄中,你從命令行切換到該目錄。

附錄:我只是雙重檢查了官方下載頁面srlua,我看到還有一個包含已經編譯好的Windows二進制文件。因此,您可以跳過源代碼部分的所有編譯,只需下載並解壓縮this即可。

二進制文件位於存檔內的Release子目錄中。請注意,這些僅適用於Lua 5.1,因此如果您的腳本使用Lua 5.2的功能,則必須遵循我的初步建議並從源代碼進行編譯。

+0

非常感謝。我不明白的是:我的lua文件中有幾個函數,那麼如何指定哪一個應該執行?在Java或C中,我們有一個主函數並執行,但僅包含函數的lua文件又如何? – maxam

+2

腳本從第一行開始執行。從技術上講,腳本本身就是Lua函數的主體,並且該函數是在運行腳本時解釋器執行的內容。在其他語言中,你可以把它稱爲「匿名」函數,但是在Lua中它會引起誤解,因爲函數技術上沒有名稱(只有變量),因爲它們是(一級)值。你所看到的函數名稱的確是變量(局部變量,全局變量或表格字段),它們具有作爲值的函數。順便說一下,在Lua中你可以在其他函數中定義新的函數。 –

相關問題