回答
那麼,你希望把所有的Lua源到你的可執行文件,所以你需要這樣的:
映射文件名的方法到Lua文件:
char lua_files[]={ "filename1\0filecontents1", "filename2\0filecontents2", 0, };
這可以通過在構建時讀取您的Lua文件目錄的腳本自動創建。
(可選)它甚至可以預編譯這些文件,因此您可以從嵌入的Lua庫中刪除解析器。- 自定義裝載機:
寫短的Lua C函數,用於搜索該陣列,並返回load
和一個字符串包圍發現filecontents作爲一個Lua字符串。
將其放入package.searchers
進行註冊。
如果您稍後想允許以某種方式加載自定義腳本,請保留舊的搜索器並確保您以某種方式要求文件不在源代碼中。
對不起,我不明白你的意思。 –
@Ehan:詳細闡述。 – Deduplicator
我想我現在有點理解了,比方說,Lua文件'test.lua'是否放在'lua'文件夾中,我會放入lua_files []'lua \ test.lua'嗎?只是想澄清。 –
使用「embedded bytecode」 LuaJIT的特點:
要靜態嵌入模塊的字節碼在您的應用程序,生成目標文件,只是與你的應用程序聯繫起來。
require()嘗試從導出的符號(在Windows上的* .exe或lua51.dll中)和package.cpath中的共享庫中加載嵌入的字節碼數據。
實施例:
luajit -b test.lua test.obj # Generate object file
# Link test.obj with your application and load it with require("test")
- 1. groovy構建腳本來構建一個flex項目
- 2. 用兩個腳本構建java項目
- 3. 爲開源項目構建腳本
- 4. PowerShell腳本構建Visual Studio項目
- 5. 通過腳本構建iphone項目
- 6. Netbeans項目爲腳本構建
- 7. 構建java項目的NSIS腳本?
- 8. 與Python腳本一起運行結構
- 9. 組建一個多項目構建腳本
- 10. 無法在VS2010中構建lua與lua的項目,可疑庫問題
- 11. 使用ANT構建腳本構建Eclipse項目
- 12. 如何構建python項目與coverage.py一起使用?
- 13. 如何與nix一起使用堆棧來構建wxHaskell項目?
- 14. Qt構建與構建腳本
- 15. xml與Lua腳本合併
- 16. 與Junit構建Maven項目
- 17. Android Eclipse測試項目不能與Android構建樹中構建的項目一起使用
- 18. 從另一個lua腳本加載lua腳本
- 19. 在Debug中如何構建一個項目與版本不同?
- 20. 項目EXE構建不起作用
- 21. Lua Wireshark腳本
- 22. Orchard CMS構建腳本 - 包含在構建中的排除模塊項目
- 23. 蘋果腳本做shell腳本,xcode構建失敗找到項目
- 24. 構建項目
- 25. 在C++中構建和運行C++ - C++腳本(而不是lua)
- 26. 需要創建一個腳本,從CSV創建目錄結構
- 27. 運行構建腳本,而不是建立一個目標
- 28. 是否可以在java android項目中使用lua腳本?
- 29. Angular 2項目的初始構建腳本?
- 30. 使用ANT腳本構建Android測試項目
也http://stackoverflow.com/questions/194520/creating-standalone-lua-executables見。 – lhf
你也可以像[premake](https://github.com/annulen/premake/blob/master/scripts/embed.lua)那樣在文本上做到這一點,並且如果你想要搞亂,靜態混淆(即加密或壓縮)字符串隨着腳本更難 –