Lua 常见问题解答

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

1 – 分发

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

1.1 – 构建 Lua 需要什么?

Lua 是用纯 ANSI C 实现的,并且可以在所有已知平台上进行未修改的编译。构建 Lua 所需的全部内容都是一个 ANSI C 编译器(gccclang 是流行的编译器)。Lua 也可作为 C++ 进行干净编译。

如果您在 Unix 系统(如 Linux 或 macOS)中构建 Lua,那么您可能已经拥有所需的一切,只需键入 make 即可完成。(您只需选择一个合适的平台。)否则,请参阅 下一个问题。无论如何,有关完整说明,请参阅发行版附带的 自述文件《Lua 编程入门》 一书的 第 1 章 包含有关下载、构建和安装 Lua 的详细说明。以下是常见平台的简单说明

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

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

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

这取决于你的编译器。这些平台中的大多数编译器要求你创建“项目”文件。你需要为构建库、解释器和编译器创建项目(或你的编译器使用的任何内容)。所有源代码均位于 src 目录中。有关哪些模块应进入哪个项目的具体列表,请参阅 自述文件。另请参阅 BuildingLua 中的 wiki。书籍 Beginning Lua Programming第 1 章 包含有关下载、构建和安装 Lua 的详细说明。

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

1.3 – 下一个版本何时到期?

Lua 正在持续开发,但新版本 不频繁

Lua 5.4.6 于 2023 年 5 月 14 日发布。

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

Lua 5.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 是否有新闻组?

不,只需使用邮件列表即可。如果您想使用 Web 界面阅读帖子,请访问Google Groups或在MARC查看存档。您可能还想搜索存档

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

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

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

在报告错误之前,请尝试识别一个展示错误的最小程序,也称为MWESSCCE。这使得重现、记录和追踪错误变得更加容易。此外,阅读 Simon Tatham 关于如何有效报告错误的文章。

2.4 – 谁在使用 Lua?

Lua 用于世界各地的许多产品和项目中,包括一些知名游戏。完整列表太长,我们无法跟踪。请参阅列表列表

2.5 – 有关 Lua 的书籍有哪些?

PiL4

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

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

您可以通过 支持 Lua 项目购买 Lua.org 出版的书籍,并 捐款

您还可以通过在 Zazzle 购买 Lua 产品来帮助传播有关 Lua 的信息。