Lua 常见问题解答

以下是有关 Lua 的一些常见问题的答案。
如需了解 Lua 是什么,请参阅此摘要或学习如何开始使用 Lua。
有关编程问题,请参阅社区维护的 LuaFaq 以及更长的 uFAQ

1 – 分发

有关如何获取 Lua 源代码和二进制文件的说明,请参阅下载入门页面。

1.1 – 我需要什么才能构建 Lua?

Lua 是用纯 ISO C 实现的,可以在所有已知平台上未经修改地编译。构建 Lua 所需要的只是一个 ISO C 编译器(gccclang 是流行的选择)。Lua 也可以干净地编译为 C++。

如果您正在 Unix 系统(如 Linux 或 macOS)中构建 Lua,那么您可能已经拥有所需的一切,只需输入make即可。(Makefile 会尝试猜测您的平台。如果失败,您将不得不选择一个合适的平台。)否则,请参阅下一个问题。无论如何,有关完整说明,请参阅分发版附带的 README《Lua 编程入门》一书的第 1 章包含下载、构建和安装 Lua 的详细说明。以下是常见平台的简单说明

curl -L -R -O https://lua.ac.cn/ftp/lua-5.5.0.tar.gz
tar zxf lua-5.5.0.tar.gz
cd lua-5.5.0
make all test
如果您没有 curl,请尝试 wget。

如果您没有时间或不愿自己编译 Lua,请从 LuaBinaries 获取二进制文件。如果您只想尝试 Lua,请尝试在线演示

1.2 – 如何在 Windows 和其他系统中构建 Lua?

这取决于您的编译器。这些平台上的大多数编译器都要求您创建“项目”文件。您需要为构建库、解释器和编译器创建项目(或您的编译器使用的任何东西)。源代码都在src目录中。哪些模块应该进入哪些项目的确切列表在 README 中给出。另请参阅 wiki 中的 BuildingLua《Lua 编程入门》一书的第 1 章包含下载、构建和安装 Lua 的详细说明。

如果您没有时间或不愿自己编译 Lua,请从 LuaBinaries 获取二进制文件。

1.3 – 下一个版本何时发布?

Lua 持续开发中,但新版本发布不频繁

Lua 5.5.0 于 2025 年 12 月 22 日发布。

1.4 – 下一个版本会带来哪些变化?

要预览下一个版本中将要推出的内容,请在可用时尝试工作版本

如果您担心不兼容性,大可不必,因为我们尽一切努力避免引入任何不兼容性。当不兼容性不可避免时,以前的代码通常可以在不修改的情况下得到支持,这可能通过使用适当的编译标志构建 Lua 来实现。无论如何,参考手册包含一个不兼容性列表

1.5 – Lua 是免费软件吗?

是的,Lua 可以免费用于任何目的,包括商业目的,完全免费,使用它不需要任何文件。阅读许可页面中的详细信息。

1.6 – Lua 与 GPL 软件兼容吗?

是的。Lua 遵循非常宽松且著名的 MIT 许可证条款分发,该许可证与 GPL 兼容,并由 开源计划批准。阅读许可页面中的详细信息。

1.7 – 我该如何称呼源自 Lua 的软件?

Lua 旨在用于他人的软件,包括您的软件。在大多数情况下,Lua 只是通过新功能进行扩展,使 Lua 适应您的特定领域。这正是 Lua 的设计目的。当需要分发您的软件时,可能会出现两个问题:“我还可以将我的软件中的语言称为 Lua 吗?”和“我可以称它为其他名称吗?”。

答案如下:如果语言的语法和语义(即解析器和虚拟机)保持不变,那么该语言仍然是 Lua。如果您只是添加新的库,甚至用您自己的库替换标准的 Lua 库,语言仍然是相同的,您不需要(而且可能不应该)给它一个完全不同的名称。

如果您改变了语言的语法或语义,那么这可能是一个小的扩展,您可能会受益于将您的语言称为 Lua 变体,这样您可以将用户指向现有的 Lua 文档和社区,同时附带与您对语言的扩展相关的注意事项。

通常,人们会使用一些包含 Lua 的名称(CGILua、LuaMan、LuaOrb 等),这样就很清楚它*使用*了 Lua,但它不是官方的 Lua 发行版。换句话说,应该非常清楚您的软件使用了 Lua(或者,更具体地说,您的软件中的语言*就是* Lua),但同时,也应该清楚您的软件*不是* Lua。

无论如何,请根据许可证,为 Lua 认可我们。

如果此解释仍不清楚,请联系我们

1.8 – 有公共版本控制仓库吗?

GitHub 上有一个 Lua 开发代码的公共镜像,由 Lua 团队维护。它包含所有提交的完整历史,但不定期镜像。请不要发送拉取请求。请将所有错误报告和建议发送到邮件列表

Lua 是开源软件,但它不是公开开发的。阅读此解释

如果您想预览下一个版本中将要推出的内容,请在可用时尝试工作版本

1.9 – 你们接受补丁吗?

我们鼓励基于经过测试的代码解决方案讨论问题和增强功能,但我们从不逐字地合并第三方代码。我们始终努力理解问题和拟议的解决方案,然后,如果我们选择解决该问题,我们将提供我们自己的代码。Lua 中的所有代码都是由我们编写的。另请参阅上一个问题

2 – 信息

有关 Lua 的完整信息可以在其主页上找到。您可能想先阅读一份摘要,从站点地图中选择一个入口点,或者学习如何开始使用 Lua。

2.1 – Lua 有邮件列表吗?

是的,有一个友好且活跃的邮件列表,名为 lua-l。欢迎所有人加入。在此处阅读所有相关信息。

对于葡萄牙语讨论,有 Lua BR,即 lua-l 的巴西版本。

2.2 – Lua 有新闻组吗?

不,只需使用邮件列表。如果您想通过网页界面阅读帖子,请访问 Google Groups搜索存档

如果您正在寻找 Lua 的问答论坛,请尝试 stackoverflowpt.stackoverflow

2.3 – 如何报告 Lua 中的错误?

首先,请确保您确实找到了一个错误。检查问题是否已经报告(并且可能已修复)。搜索邮件列表的存档,看看是否有人遇到过同样的问题并有修复或解释。经过研究后,如果您仍然认为您可能发现了错误,请在邮件列表中发布报告。

在报告错误之前,请尝试识别一个能够展示该错误的最小程序,也称为MWESSCCE。这使得重现、文档化和追踪错误变得容易得多。此外,请阅读 Simon Tatham 关于如何有效报告错误的文章。特别是,请务必提及包含该错误的 Lua 版本

2.4 – 谁在使用 Lua?

Lua 被全球许多产品和项目使用,其中包括几个著名的游戏。完整的列表太长,我们无法跟踪。请参阅列表的列表

2.5 – 有关于 Lua 的书籍吗?

PiL4

是的,有几本。在此处查看完整列表《Lua 编程》一书是 Lua 首席架构师撰写的关于 Lua 编程所有方面的详细权威介绍。第四版于 2016 年出版,并提供电子书。第一版于 2003 年出版,并可在线免费获取。以前的版本有多种语言版本。还有几本其他作者撰写的 Lua 书籍

2.6 – 我如何帮助支持 Lua 项目?

您可以通过购买 Lua.org 出版的书籍进行捐赠支持 Lua 项目

您还可以通过在Zazzle购买 Lua 产品来帮助传播 Lua。