Linux luac命令使用详解
Lua是一门强大,高效,轻量级的嵌入式脚本语言。luac是Lua编译器, 它会将Lua源程序编译为二进制文件,二进制文件可以在随后被加载执行。luac命令不仅能够用于编译Lua程序,同时可以用来分析Lua二进制文件。
将chunks进行预编译的主要优点在于:更快的加载速度,保护源代码避免受到用户的意外修改和离线语法检查。预编译并不意味着更快的执行速度,这是因为Lua chunk在执行之前总是会被编译为字节码。luac只允许将字节码保存到文件中,以便以后执行。预编译块不一定小于相应的源。预编译的主要目标是加载速度更快。
在命令行中,您可以混合包含Lua源的文本文件和包含预编译块的二进制文件。 luac 生成一个输出文件,其中包含给定所有文件的组合字节码。执行组合文件相当于执行给定文件。默认情况下,输出文件名为 luac.out,但您可以使用-o
选项更改此设置 。
注意:
预编译的块 不能 在不同的体系结构中移植。此外,当发布新版本的Lua时,预编译块的内部格式可能会发生变化。确保保存预编译的所有Lua程序的源文件。
用法
luac [ options ] [ filenames ]
选项 | 说明 |
---|---|
-l | 生成已编译字节码的列表,列出字节码对于了解Lua的虚拟机非常有用。如果没有给出文件,则 luac 加载 luac.out 文件并列出其内容。使用-l -l 获取完整列表。 |
-o file | 指定输出文件名,而不是默认的 luac.out。(您可以使用 - 作为标准输出,但不能在文本模式下打开标准输出的平台上使用。)输出文件可能是给定文件之一,因为所有文件都是在写入输出文件之前加载的。小心不要覆盖珍贵的文件。 |
-p | 加载文件但不生成任何输出文件。主要用于语法检查和测试预编译块:损坏的文件可能在加载时生成错误。如果没有给出文件,则 luac 加载 luac.out 并测试其内容。如果文件加载没有错误,则不显示任何消息。 |
-s | 在写入输出文件之前剥离调试信息。这会在非常大的块中节省一些空间,但如果在运行剥离的块时发生错误,则错误消息可能不包含它们通常执行的完整信息。特别是,丢失了行号和局部变量的名称。 |
-v | 显示版本信息 |
-- | 停止处理选项 |
- | 停止处理选项和处理标准输入 |