luac 生成的字节码能否在没有 Lua 库的计算机上使用?

如果我使用 luac 编译一个普通的 .lua 文件,那么结果是否可以在没有 Lua 库或解释器安装的情况下运行?

原文链接 https://stackoverflow.com/questions/9985753

点赞
stackoverflow用户5696
stackoverflow用户5696

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

顺便说一句,编译后的 Lua 字节码也是机器特定的;也就是说,除非你了解细节(字节序,类型大小等),否则不能在一个架构上编译然后在另一个架构上运行该输出。

2012-04-03 00:53:46
stackoverflow用户936986
stackoverflow用户936986

如果你的代码不使用任何基于动态加载的设施(如 loadstring、loadfile、require 等),那么你可以将 Lua 库削减到只剩下一个虚拟机,因为编译器生成的代码是在这个虚拟机上运行的。这样可以将 Lua 已经很小的内存占用,轻松地缩小到原来的三分之一。

但是,由于这不是任何当前存在的架构的原生二进制代码,所以你仍然无法直接运行它,需要借助虚拟机的帮助。

2012-04-12 13:05:09