Lua 是一门强大、迅速、轻量的嵌入式脚本语言。它由巴西里约热内卢 Pontifical Catholic 大学的PUC-Rio团队开发。 Lua 是一个自由软件, 广泛应用于世界上无数商品和项目。
Lua 以源码的形式发布,用之前,你需要构建它。 构建 Lua 很简单,由于 Lua 是用纯粹的 ANSI C 达成的,在所有拥有 ANSI C 编译器的平台都可以直接编译。 同时,Lua 也可以直接以 C++ 形式编译。 下面介绍了类 Unix 平台上的构建步骤,另有其它系统构建介绍与配置选项以作参考。
假如你没时间或兴趣自己编译 Lua,可以从LuaBinaries获得编译后的二进制文件 或者从LuaDist这里获得 Lua 的多平台发布版(自带电池)。
构建 Lua
在大部分类 Unix 平台上,输入 make 加上适合的平台名即可。步骤如下:
打开一个控制台窗口,切换到lua-5.3.0目录。 目录下的Makefile文件内包括了构建与安装步骤。
运行 make 并查询你的平台是不是列在其中。 目前支持的平台有:
aix bsd c89 freebsd generic linux macosplayx mingw posix solaris
假如你的平台在其中,运行 make xxx 即可,xxx 代表你的平台名。
假如你的平台不在其中,先尝试最相近的平台,再按 posix generic c89 顺序依次尝试。
编译过程非常短,最后在src目录下生成三个文件: lua , luac 和 liblua.a 。
构建完成后,可以运行 make test 来检查是不是成功。 它会运行讲解器并打印版本号。
假如你是 Linux 系统并出现了编译错误,请确认你是不是安装了readline(也会叫libreadline-dev或者readline-devel)开发包。 之后,假如还有链接错误,尝试 make linux MYLIBS=-ltermcap 。
安装 Lua
一旦你构建完毕,可能期望把 Lua 安装到系统默认地方, 那样实行 make install 即可。 系统默认地方与怎么样安装都概念在Makefile中。 这个过程可能需要有有关的权限。
运行 make xxx install 可以构建和安装一步到位,xxx 指你的平台名。
假如你想把 Lua 安装在当地,运行 make local。 它会创建一个install目录,内有bin,include,lib,man,share,子目录,并将下列文件安装在其中。 假如你想安装到当地其它目录, 运行 make install INSTALL_TOP=xxx,xxx 指你选择的目录。 因为安装过程中会切换到src与doc目录进行, 所以当INSTALL_TOP不是绝对路径时务必小心。
bin:
lua luac
include:
lauxlib.h lua.h lua.hpp luaconf.h lualib.h
lib:
liblua.a
man/man1:
lua.1 luac.1
这类是开发时需要的目录。 假如你仅仅想运行一些 Lua 程序, 那样仅需bin和man下的文件。include和lib下的文件用于将 Lua 嵌入 C 或 C++ 程序。
定制
有三类定制,可以通过编辑文件完成:
如何安装 Lua 与安装到哪儿 — 编辑Makefile。
如何构建 Lua — 编辑 src/Makefile。
Lua 特质 — 编辑src/luaconf.h。
其实你不必编辑 Makefile 文件,make 的时候在命令行指定有关变量即可。 当然,编辑保存 Makefile 可以给定制留个记录。
其次,假如你需要定制一些 Lua 特质,那就需要在构建安装 Lua 前 编辑src/luaconf.h。 编辑过的文件需要确保一致性,也就是只安装在一个地方, 让所有你编译出来的用到 Lua 的程序都用这唯一的这一份。 专家可以通过编辑 Lua 源码来定制更多的东西。
在其它系统上构建 Lua
假如你不用常规的 Unix 工具,那样构建 Lua 的步骤就取决于你用的编译器。 你需要创建若干工程来构建库,讲解器与编译器等。请把下列源文件加入有关工程:
库:
lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c
讲解器:
library, lua.c
编译器:
library, luac.c
把 Lua 以一个库形式用于你的程序,你需要了解怎么样用你的编译器创建库和用库。 譬如,以动态加载的 C 库形式用 Lua,你需要知道怎么样创建动态库并让 Lua API 函数 在动态库中可见 —不要将 Lua 库链入每一个动态库。 在 Unix 下,大家建议把 Lua 库静态链入宿主程序,然后将符号导出用于动态链接;src/Makefile就是如此处置 Lua 讲解器的。 在 Windows 下,大家建议把 Lua 库编译成一个 DLL 。 无论如何,编译器 luac 都要静态链接。
正如上面所述,你可以在构建 Lua 前编辑src/luaconf.h以定制一些特质。
整数
32 位整数的官方支持
位操作符
基本的 utf-8 支持
值的打包及解包函数
以下是Lua 5.3 引入的其它变更:
语言
用户数据可以是任意 Lua 值
整数除法
某些元办法有了愈加灵活的规则
库
ipairs与表处置库都会考虑元办法
string.dump多了裁减选项
表处置库考虑了元办法
新函数table.move
新函数string.pack
新函数string.unpack
新函数string.packsize
C API
简化了延续点 API
lua_gettable与类似函数会返回结果的值种类
lua_dump增加了裁减选项
新函数:lua_geti
新函数:lua_seti
新函数:lua_isyieldable
新函数:lua_numbertointeger
新函数:lua_rotate
新函数:lua_stringtonumber
Lua 独立讲解器
可以做计算器用;不再需要前置 =
arg表对所有代码都可
TAG标签:Lua5.3参考手册(1)
转载请说明来源于当快软件园(https://www.lrvxg.com)
本文地址:https://www.lrvxg.com/soft/4604.html
郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com