我目前正在使用OpenResty + Lua进行多个项目,我喜欢Lua给我的灵活性,实际上我直接在Lua脚本中编写了一些由Nginx-OpenResty提供的微博客应用程序。 / p>
但是,如果我想分发网络应用程序,显然Lua代码应该是" plain"或者,至少,有点混淆。相反,考虑到我当前使用的LuaJIT将Lua编译为本机代码,是否可以将所有Lua脚本预编译为本机代码(不是lua .o目标文件),并将它们加载到OpenResty中,而不是直接.lua源文件?
答案 0 :(得分:3)
不。
无法将LuaJIT代码编译为机器代码。由于两个主要原因,它根本不起作用:
if
分支,这取决于更频繁地采用哪一个)。因此,不可能提前预编译它们。require
),或者因为它根本不可能(例如,调用Lua C API函数)最好的办法是将Lua文件编译为LuaJIT字节码,而调整信息则被剥离。这意味着省略了局部变量名,行号等内容,但仍可以进行反汇编。