dl.display dd { padding-bottom: 0.2em ; }
tt, kbd, code { font-size: 12pt ; }
欢迎使用 Lua 5.3
Lua 是一种功能强大、快速、轻量级、可嵌入的脚本语言,由巴西里约热内卢天主教大学( PUC-Rio)的 团队开发。 Lua 是 自由软件,被全球许多产品和项目使用。
Lua 的 官方网站提供关于 Lua 的完整信息,包括 执行摘要和更新的 文档,特别是 参考手册,它可能与随本软件包分发的 本地副本略有不同。
Lua 以 源代码形式分发。 使用之前需要构建它。 构建 Lua 应该很简单,因为 Lua 是用纯 ANSI C 实现的,可以在所有拥有 ANSI C 编译器的已知平台上不经修改地编译。 Lua 也可以不经修改地作为 C++ 编译。 下面给出的构建 Lua 说明适用于类 Unix 平台。 另请参见 其他系统的说明 和 定制选项。
如果您没有时间或意愿自己编译 Lua,请从 LuaBinaries 获取二进制文件。 还可以尝试 LuaDist,它是一个包含附加组件(电池)的多平台 Lua 发行版。
在大多数类 Unix 平台上,只需使用合适的目标执行 "make"。以下是详细信息。
aix bsd c89 freebsd generic linux macosx mingw posix solaris
如果列出了您的平台,只需执行 "make xxx",其中 xxx 是您的平台名称。
如果没有列出您的平台,请按顺序尝试最接近的平台或 posix、generic、c89。
如果您正在运行 Linux 并遇到编译错误,请确保您已安装 readline 开发包 (可能名为 libreadline-dev 或 readline-devel)。 如果之后出现链接错误,请尝试 "make linux MYLIBS=-ltermcap"。
构建 Lua 后,您可能希望将其安装到系统中的官方位置。在这种情况下,执行 "make install"。官方位置和安装文件的方式在 Makefile 中定义。您可能需要适当的权限来安装文件。
要一步完成构建和安装 Lua,请执行 "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 中的文件。 include 和 lib 中的文件用于 将 Lua 嵌入到 C 或 C++ 程序中。
可以通过编辑文件来定制三种内容:
您实际上不需要编辑 Makefile,因为您可以在调用 make 时在命令行中设置相关变量。不过,最好编辑并保存 Makefile 以记录您所做的更改。
另一方面,如果您需要定制一些 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.3 引入的主要变更。 参考手册列出了 必须引入的不兼容性。
以下是 Lua 5.3 引入的其他变更:
ipairs 和 table 库尊重元方法
string.dump 中的 strip 选项
table.move
string.pack
string.unpack
string.packsize
lua_gettable 及类似函数返回结果值的类型
lua_dump 中的 strip 选项
lua_geti
lua_seti
lua_isyieldable
lua_numbertointeger
lua_rotate
lua_stringtonumber
arg 表对所有代码可用
Lua 是根据以下转载的
MIT 许可证条款分发的自由软件;
它可以用于任何目的,包括商业目的,
完全免费,无需征得我们同意。
唯一的要求是,如果您使用了 Lua, 则应在您的产品或文档中适当位置包含相应的版权声明,以示感谢。
详细信息请参见 这里。
版权所有 © 1994–2017 Lua.org, PUC-Rio。特此免费授予任何获得本软件及相关文档文件(“软件”)副本的人,以不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件副本的权利,以及允许被提供本软件的人员这样做的权利,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和不侵权的保证。在任何情况下,作者或版权持有人均不对因本软件或本软件的使用或其他交易而产生的任何索赔、损害赔偿或其他责任(无论是合同、侵权或其他方式)负责。
最后更新: Mon Jun 18 22:57:33 -03 2018