关于 · 安装 · å�˜æ›´ · 许å�¯è¯� · å�‚考手册 · ä¸è‹±æœ¯è¯å¯¹ç…§è¡¨
Lua 是一门强大ã€�快速ã€�è½»é‡�的嵌入å¼�脚本è¯è¨€ã€‚它由巴西里约çƒå†…å�¢ Pontifical Catholic 大å¦çš„ PUC-Rio 团队 å¼€å�‘。 Lua 是一个 自由软件, å¹¿æ³›åº”ç”¨äºŽä¸–ç•Œä¸Šæ— æ•°äº§å“�和项目。
Lua 的 官方网站 上�供了关于 Lua 的完整信�, 包括 综�概� 和最新的 文档, 需�注�的是 �考手册 �能和 这里的版本 有所��。
Lua 以 æº�代ç � 的形å¼�å�‘布,使用之å‰�ï¼Œä½ éœ€è¦�构建它。 构建 Lua é�žå¸¸ç®€å�•ï¼Œå› ä¸º Lua 是用纯粹的 ANSI C 实现的,在所有具备 ANSI C 编译器的平å�°éƒ½å�¯ä»¥ç›´æŽ¥ç¼–译。 å�Œæ—¶ï¼ŒLua 也å�¯ä»¥ç›´æŽ¥ä»¥ C++ å½¢å¼�编译。 下é�¢ä»‹ç»�了类 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 ä¸ã€‚ 这个过程å�¯èƒ½éœ€è¦�有相关的æ�ƒé™�。
è¿�行 "make xxx install" å�¯ä»¥æž„建和安装一æ¥åˆ°ä½�,xxx æŒ‡ä½ çš„å¹³å�°å��。
å¦‚æžœä½ æƒ³æŠŠ Lua 安装在本地,è¿�行 "make local"。 它会创建一个 install 目录,内有 bin, include, lib, man, share, å�目录,并将下列文件安装在其ä¸ã€‚ å¦‚æžœä½ æƒ³å®‰è£…åˆ°æœ¬åœ°å…¶å®ƒç›®å½•ï¼Œ è¿�行 "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 以一个库形å¼�ç”¨äºŽä½ çš„ç¨‹åº�ï¼Œä½ éœ€è¦�知é�“å¦‚ä½•ç”¨ä½ çš„ç¼–è¯‘å™¨åˆ›å»ºåº“å’Œä½¿ç”¨åº“ã€‚ 比如,以动æ€�åŠ è½½çš„ C 库形å¼�使用 Luaï¼Œä½ éœ€è¦�了解如何创建动æ€�库并让 Lua API 函数 在动æ€�库ä¸å�¯è§� — ä¸�è¦� å°† Lua 库链入æ¯�个动æ€�库。 在 Unix 下,我们建议把 Lua 库é�™æ€�链入宿主程åº�,然å�Žå°†ç¬¦å�·å¯¼å‡ºç”¨äºŽåЍæ€�链接; src/Makefile å°±æ˜¯è¿™æ ·å¤„ç�† Lua 解释器的。 在 Windows 下,我们建议把 Lua 库编译æˆ�一个 DLL 。 æ— è®ºæ€Žæ ·ï¼Œç¼–è¯‘å™¨ luac 都应该é�™æ€�链接。
æ£å¦‚上é�¢æ‰€è¿°ï¼Œä½ å�¯ä»¥åœ¨æž„建 Lua å‰�编辑 src/luaconf.h 以定制一些特性。
这里列出了 Lua 5.3 引入的主è¦�å�˜æ›´ã€‚ å�‚考手册 ä¸åˆ—出了 ä¸�兼容的地方。
ipairs 以�表处�库都会考虑元方法
string.dump 多了��选项
table.move
string.pack
string.unpack
string.packsize
lua_gettable 以�类似函数会返回结果的值类型
lua_dump å¢žåŠ äº†è£�å‡�选项
lua_geti
lua_seti
lua_isyieldable
lua_numbertointeger
lua_rotate
lua_stringtonumber
arg 表对所有代ç �都å�¯ç”¨
Lua is free software distributed under the terms of the MIT license reproduced below; it may be used for any purpose, including commercial purposes, at absolutely no cost without having to ask us. The only requirement is that if you do use Lua, then you should give us credit by including the appropriate copyright notice somewhere in your product or its documentation. For details, see this.
Copyright © 1994–2015 Lua.org, PUC-Rio.Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.