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 macosx 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以定制一些特性。
整数 (默认 64 位)
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表对所有代码都可
开发者其他应用

讯飞文档app官方版25.2M13484人在玩讯飞文档app官方下载2022最新版是科大讯飞公司打造的一款在线协作文档软件,这款讯飞文档app跟腾讯文档的功能有点类似,都可以让团队在线上进行协作。
下载
腾讯会议官方版app90.7M14041人在玩腾讯会议官方最新版app专门为需要在线线上会员的小伙伴准备的非常实用的app工具,支持电脑移动端同步,给需要开会你带来最棒的办公体验,相信不少的小伙伴都会需要
下载
2022货车帮货主版app140.8M17149人在玩货车帮货主是成都运力科技有限公司旗下物流智能分配货运平台,覆盖全国360多个城市的物流货运平台,是一款为全国各地货主提供经验丰富、安全可靠的货车司机的找车发货软件。
下载
招才猫直聘官方app67.6M7290人在玩招才猫直聘是由58同城推出的商业直聘专用APP,全国1850万商家都在使用招才猫直聘!海量各个领域人才等你来发现、挖掘,你可以在58招财猫官网上看到人家的详细资料。
下载
口碑外卖商家版75.1M87人在玩口碑外卖掌柜是淘宝为入驻口碑外卖的商家提供的一款手机客户端,商家们可以通过口碑掌柜客户端查看店铺的最新订单并对自己的店铺进行管理,有新的订单软件会以语音的形式提醒你接单
下载
易企秀设计app43.7M7599人在玩易企秀设计app是一款免费的移动场景自营销管家工具,这款易企秀设计app可以帮你免费制作各类手机h5营销类应用,另外这款易企秀设计app还可以帮你查看手机网页的访问量。
下载
美团外卖商家版117.2M19211人在玩美团外卖商家版是美团外卖专门为商家们打造的一款手机客户端。如果你是入驻美团外卖的商家,那么你可以在这里更好地管理你的商铺,美团外卖商家版app轻松地查看用户的下单信息。
下载
易企秀设计44.8M170人在玩易企秀是一款专门为企业打造的微信辅助类应用,你可以通过易企秀设定微信页面的场景、颜色、文字版式等等,还可以通过它查看网页的访问量以及潜在客户报名等等消息。
下载
boss直聘招聘版手机版123.8M5450人在玩boss直聘招聘版手机版是一款用相亲交友的方式做招聘,让老板和求职者在平台上直接沟通的社交软件。Boss直聘分为面向求职者的”牛人版“和面向老板的”Boss版“。
下载
饿了么商家版最新版本134.7M8390人在玩饿了么商家手机客户端是饿了么外卖网为入驻商家提供的一款手机客户端软件,这款应用可以帮助商家使用手机快速接单,部分应用要求用户时时打开应用界面才能接收订单消息推送。
下载