lua:把lua文本文件“編譯”成二進制的文本


當你發布lua時,你或許不想用戶看到你的lua源碼,更不想用戶修改你的lua代碼和系統內部的秘密,那就需要用別的方式來發布。

最終的文本文件可以通過lua作者提供的標准發布版本中的程序來執行。這個程序稱做luac.exe,把lua文本文件“編譯”成二進制的文件。這樣就可以讓別人更難知道你的游戲是如何運行的,采用了什么技術。

 

當寫好一個lua文件后,可以通過一個典型的編譯命令去“編譯”這個文件:

 

這一行代碼會編譯helloworld.lua腳本並在helloworld文件中生成二進制數據。

lua解析器並不關心你傳給它的是文本文件還是二進制文件,也不關心擴展名是什么。

 

用這個方法,就不用擔心別人可以看到你的代碼了。

 

補:

發現當用到require加載某些子模塊時會有出錯。根據《Lua 程序設計第二版》第15章所說:

當require一個模塊mod.sub時,require會用原始的模塊名“mod.sub”作為key來查詢table package.loaded和package.preload,其中,模塊名中的點在搜索中沒有任何意義。

當搜索一個定義子模塊的文件時,require會將點轉換為另一個字符,通常就是系統的目錄分隔符。轉換之后require就像搜索其他名稱一樣來搜索這個名稱。

所以最好的方法是在編譯完lua腳本后,也把二進制文件改成.lua后綴。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM