1 Lua介绍及环境

Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。

Lua 是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。

  • 轻量级:它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
  • 可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
  • 其它特性:
    • 支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
    • 自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
    • 语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
    • 通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
  • 游戏开发
  • 独立应用脚本
  • web应用脚本
  • 扩展和数据库插件
  • 安全系统:如入侵检测系统(IDS)

1.1 官方网站

http://www.lua.org/

中文在线文档 http://www.runoob.com/manual/lua53doc/

1.2 下载

http://www.lua.org/download.html

找到 tar包进行下载。

或者使用以下指令安装。

  1. curl -R -O http://www.lua.org/ftp/lua-5.1.tar.gz
  2. tar zxf lua-5.1.tar.gz
  3. cd lua-5.1
  4. make linux
  5. sudo make install

如果报错 找不到readline.h头文件

  1. lua.c:80:31: fatal error: readline/readline.h: No such file or directory
  2. #include <readline/readline.h>
  3. ^
  4. compilation terminated.
  5. make[2]: *** [lua.o] Error 1
  6. make[2]: Leaving directory `/root/lua/lua-5.3.2/src'
  7. make[1]: *** [linux] Error 2
  8. make[1]: Leaving directory `/root/lua/lua-5.3.2/src'
  9. make: *** [linux] Error 2

解决办法:

  1. 缺少libreadline-dev依赖包
  2. centos: yum install readline-devel
  3. debian: apt-get install libreadline-dev

找不到-lncurses

apt-get install libncurses5-dev

1.3 运行第一个Lua程序

新建Hello_lua.lua文件,写代码如下

  1. print("Hello Lua!")

运行

  1. lua Hello_lua.lua

输出

  1. Hello Lua!