您好我有一個Lua程序(用Lua 5.1編寫)。我在Windows 7上,試圖將其轉換爲可執行文件。到目前爲止沒有運氣。我已閱讀其他帖子,建議使用srlua來做到這一點,所以我已經下載了它,但我對下一步該做什麼感到不知所措。我根據我的理解安裝了cygwin,但我不知道如何使用srlua將lua文件轉換爲可執行文件。任何幫助將不勝感激。Windows Lua到可執行文件
回答
srlua僅作爲源代碼發佈,因此您必須先編譯它(有關獲取免費C編譯器的建議,請參閱this answer)。
順便說一句,Cygwin根本就沒有必要。上述鏈接將引導您安裝TDM-GCC(GCC編譯器的Windows端口),該端口將創建僅依賴Windows默認系統庫的可執行文件。
一旦你有一個C編譯器,並且你已經編譯了srlua,你將有兩個可執行文件glue.exe
和srlua.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的功能,則必須遵循我的初步建議並從源代碼進行編譯。
非常感謝。我不明白的是:我的lua文件中有幾個函數,那麼如何指定哪一個應該執行?在Java或C中,我們有一個主函數並執行,但僅包含函數的lua文件又如何? – maxam
腳本從第一行開始執行。從技術上講,腳本本身就是Lua函數的主體,並且該函數是在運行腳本時解釋器執行的內容。在其他語言中,你可以把它稱爲「匿名」函數,但是在Lua中它會引起誤解,因爲函數技術上沒有名稱(只有變量),因爲它們是(一級)值。你所看到的函數名稱的確是變量(局部變量,全局變量或表格字段),它們具有作爲值的函數。順便說一下,在Lua中你可以在其他函數中定義新的函數。 –
- 1. Lua到Unix可執行文件?
- 2. Python到Windows下的可執行文件
- 3. 將Unix可執行文件轉換爲Windows可執行文件
- 4. 將lua腳本添加到可執行文件中
- 5. 是否可以將WindowsCE可執行文件運行到Windows Mobile?
- 6. Python到可執行文件
- 7. g ++爲windows生成可執行文件
- 8. Windows和Apache Thrift可執行文件
- 9. Windows可執行文件結構
- 10. 簽署Windows .NET可執行文件
- 11. 爲Windows簽名可執行文件
- 12. 關於可執行文件與Windows
- 13. 如何從windows erlang .beam文件生成windows可執行文件?
- 14. 如何在CygWin中執行.lua文件?
- 15. 在Ubuntu上進行交叉編譯到Windows可執行文件?
- 16. 保存可執行文件到文件
- 17. 在windows中運行ubuntu文件作爲可執行文件
- 18. 在ocaml中運行可執行文件(windows)文件
- 19. 無法找到可執行文件jre1.8.0_77
- 20. 從Windows命令提示符執行命令可執行文件
- 21. 將lua腳本編譯爲獨立的可執行文件
- 22. 如何檢查文件在Lua中是否可執行?
- 23. 創建獨立的Lua可執行文件
- 24. 找不到Graphviz可執行文件
- 25. Buildkite Windows代理無法找到git可執行文件
- 26. 「拼接」的代碼放到一個Windows可執行文件
- 27. 在Windows上面對'無法找到CLI可執行文件'
- 28. Paramiko可執行文件:在Windows XP上找不到
- 29. 將數據追加到可執行文件(Windows,Unix)
- 30. Windows上的GNU Make看不到一些可執行文件
使用ThinApp,您可以輕鬆地從一堆lua.exe + lua.dll + script.lua + runme.bat文件中創建獨立的exe文件。 –