欢迎使用 Lua 5.5Lua 是一个强大、高效、轻量级、可嵌入的脚本语言,由巴西里约热内卢天主教大学 (PUC-Rio) 的团队开发。Lua 是免费软件,被世界各地的许多产品和项目使用。
Lua 的官方网站提供了关于 Lua 的完整信息,包括执行摘要、入门技巧和更新的文档,特别是参考手册,它可能与此软件包中分发的本地副本略有不同。
Lua 以源代码形式分发。在使用之前需要先构建它。构建 Lua 应该很简单,因为 Lua 是用纯 ISO C 实现的,并且在所有已知具有 ISO C 编译器的平台上都可以原样编译。Lua 也可以作为 C++ 原样编译。下面给出的构建 Lua 的说明适用于类 Unix 平台,例如 Linux 和 macOS。另请参阅其他系统的说明和自定义选项。
如果你没有时间或意愿自己编译 Lua,可以从 LuaBinaries 获取二进制文件。
在大多数常见的类 Unix 平台上,只需执行 "make"。以下是详细信息。
guess aix bsd c89 freebsd generic ios linux macosx mingw posix solaris
如果你的平台在列表中,只需执行 "make xxx",其中 xxx 是你的平台名称。
如果你的平台不在列表中,请按此顺序尝试最接近的平台或 posix、generic、c89。
构建 Lua 后,你可能希望将其安装到系统中的官方位置。在这种情况下,请执行 "make install"。官方位置和安装文件的方式在Makefile中定义。你可能需要正确的权限才能安装文件,因此可能需要执行 "sudo make install"。
要一步构建和安装 Lua,请执行 "make all install",或 "make xxx install",其中 xxx 是你的平台名称。
在构建 Lua 后本地安装它,请执行 "make local"。这将创建一个目录install,其中包含子目录bin, include, lib, man, share,并按如下所示安装 Lua。要本地安装 Lua,但安装到其他目录,请执行 "make install INSTALL_TOP=xxx",其中 xxx 是你选择的目录。安装从src和doc目录开始,因此如果INSTALL_TOP不是绝对路径,请务必小心。
这些是你进行开发所需的唯一目录。如果你只想运行 Lua 程序,你只需要bin和man中的文件。在 C 或 C++ 程序中嵌入 Lua 需要include和lib中的文件。
可以通过编辑文件来定制三种类型的东西
你实际上不需要编辑 Makefiles,因为你可以在调用 make 时在命令行中设置相关变量。然而,最好编辑并保存 Makefiles 以记录你所做的更改。
另一方面,如果你需要自定义某些 Lua 功能,请在构建和安装 Lua 之前编辑src/luaconf.h。编辑后的文件将被安装,并会被你构建的任何 Lua 客户端使用,以确保一致性。专家可以通过编辑 Lua 源代码进行进一步自定义。
如果你不使用常见的 Unix 工具,那么构建 Lua 的说明取决于你使用的编译器。你需要创建项目(或你的编译器使用的任何东西)来构建库、解释器和编译器,如下所示
要将 Lua 作为库在你自己的程序中使用,你需要了解如何使用你的编译器创建和使用库。此外,要为 Lua 动态加载 C 库,你需要了解如何创建动态库,并且需要确保 Lua API 函数可供这些动态库访问——但不要将 Lua 库链接到每个动态库中。对于 Unix,我们建议将 Lua 库静态链接到宿主程序中,并将其符号导出以进行动态链接;src/Makefile对 Lua 解释器执行此操作。对于 Windows,我们建议 Lua 库是 DLL。在所有情况下,编译器 luac 都应静态链接。
如上所述,你可以在构建 Lua 之前编辑src/luaconf.h以自定义某些功能。
以下是 Lua 5.5 中引入的主要更改。参考手册列出了必须引入的不兼容性。
Lua 是根据下面复制的 MIT 许可条款分发的免费软件;它可以用于任何目的,包括商业目的,完全免费,无需征求我们的许可。唯一的要求是,如果你使用 Lua,那么你应该通过在你的产品或其文档中的某个地方包含适当的版权声明来感谢我们。有关详细信息,请参阅许可页面。
版权所有 © 1994–2025 Lua.org, PUC-Rio。特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人这样做,但须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或重要部分中。
本软件按“原样”提供,不作任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因软件或软件的使用或其他交易而引起或与之相关的任何索赔、损害或其他责任,无论是合同行为、侵权行为还是其他行为负责。