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 中的文件。 将 Lua 嵌入到 C 或 C++ 程序时需要 include 和 lib 中的文件。
通过编辑文件可以定制三种内容:
你实际上不需要编辑 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.特此授予任何人免费获得本软件及相关文档文件(“软件”)副本的权利,允许无限制地处理本软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售本软件的副本,并允许获得本软件的人员这样做,但须满足以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害赔偿或其他责任负责,无论这些责任是基于合同、侵权或其他方式,也不论是否与本软件或本软件的使用或其他交易有关。
最后更新: 2018年6月18日 22:57:33 -03