2012-04-03 52 views
6

如果我编译.lua文件luac,结果是否可以在没有安装Lua库或解释器的情况下运行?可以在没有Lua库的计算机上使用由luac生成的字节码吗?

+0

我试图用我的(确实很重)的编辑来改善这个问题,以反映我相信OP真的在问什么。如果我错了,请随时大胆地纠正我!无论如何,我认为这个问题确实反映了Lua的新用户偶尔会感到困惑,值得保留。 – RBerteig 2012-04-03 22:45:24

回答

7

不可以。您可以在没有编译器的情况下构建的Lua版本上运行它,但仍需要Lua解释器来执行代码。

顺便说一句,编译后的Lua字节码也是机器特有的;即不能在一个体系结构上编译,然后在另一个体系结构上运行该输出,除非您了解细节(字节顺序,类型大小等)。

+0

感谢您的解释! – user1309306 2012-04-03 01:09:43

+0

请放弃我待处理的编辑!我完全错误。结果发现,Lua字节码的可移植性是有问题的 - 我发现只有很少的研究。我很抱歉。 – Deco 2012-04-03 09:06:51

1

如果你的代码没有使用任何基于动态负载的工具(即loadstring,loadfile,require等),你可以将Lua库去除为一个VM,因为编译器发出的代码是在这个虚拟中运行的代码机。这可以很容易地将Lua已经很小的占地面积减少到原来的1/3。

但是,由于这不是任何当前现有体系结构的本机二进制代码,因此无法在没有VM帮助的情况下直接运行它。

相关问题