详解Lua程序语言安装环境

移动开发 iOS
Lua 没有 "main" 程序的概念:它只能 嵌入 一个宿主程序中工作,这个宿主程序被称作 embedding program 或简称为 host 。

Lua程序语言安装环境是本文要介绍的内容,Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的库形式提供。(所谓 Clean C ,指的 ANSI C 和 C++ 中共通的一个子集)

作为一个扩展式语言,Lua 没有 "main" 程序的概念:它只能 嵌入 一个宿主程序中工作,这个宿主程序被称作 embedding program 或简称为 host 。宿主程序可以通过调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注入 C 函数让 Lua 代码调用。这些扩展的 C 函数,可以大大的扩展了 Lua 可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。

 Lua 的官方发布版就包含了一个叫做 lua 的简单的宿主程序,它用 Lua 库提供了一个保证独立的 Lua 解释器。Lua 是一个自由软件,它的使用许可决定了对它的使用过程一般没有任何保证。

Lua的安装(linux下),两种方式:

(方式一)

我的操作系统是:

  1. Linux oracle-desktop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 x86_64 GNU/Linux 

使用sudo apt-get install lua5.1命令直接安装上lua,但是在c语言中嵌入lua的时候会说找不到lua.h等文件,因此如果只是简单的运行lua命令执行一些lua语句,那么这个是足够了,但是如果要是在c语言中嵌入,就必选采用方式二。

(方式二)

我的操作系统是:

  1. Linux oracle-desktop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:05:01 UTC 2009 x86_64 GNU/Linux 

(1)先去Lua的官网(http://www.lua.org/ftp/)下载最新发布包,我选择的是 lua-5.1.4.tar.gz

(2)使用命令tar -xzvf  lua-5.1.4.tar.gz

(3)cd lua-5.1.4, 然后执行make,会提示让你输入make 系统,因为我的系统是linux的,因此我输入make linux

  1. 但运行的过程报错了error:readline/readline.h:no such file or directory,  
  2. 上网搜了一下需要安装readline-6.1.tar.gz,因此我去wget   
  3. http://www.sfr-fresh.com/unix/misc/readline-6.1.tar.gz   
  4. tar -zxvf readline-6.1.tar.gz,cd ~~ ./configure && make && make install  , sudo ldconfig,  
  5. 再运行make linux,不报readline的错误,但是又提示  
  6. /usr/bin/ld: cannot find -lncurses  
  7. 在网上搜了一下,还得下载ncurses安装,wget  
  8.  http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.7.tar.gz,   
  9. tar -xvf ncurses -5.7.tar.gz,然后 cd ncurses-5.7 ,./configure,make,make install,  
  10. 再运行make linux就一切ok了。 

(4)sudo make install

安装完成。

测试lua是否安装成功,直接运行lua就能进入编译模式。

lua安装完成后,可以按照lua手册提供的c中嵌入lua的例子,将下面的程序放到a.c中:

  1. #include <stdio.h> 
  2. #include <lua.h> 
  3. #include <lauxlib.h> 
  4. #include <lualib.h> 
  5.  
  6. int main(int argc, char *argv[])  
  7. {  
  8.         char line[BUFSIZ];  
  9.         lua_State *L = lua_open();  
  10.         luaL_openlibs(L);  
  11.         while (fgets(line, sizeof(line), stdin) != 0) printf("%s/n",line);  
  12.  
  13.         lua_close(L);  
  14.         return 0;  

然后使用如下命令

  1. gcc -I/usr/local/include/ -L/usr/local/lib/ -lm -DLUA_USE_READLINE a.c /usr/local/lib/liblua.a -ldl 

运行即可编译通过。

如果直接运行gcc a.c 会报如下错误:

  1. /tmp/ccI4JYia.o: In function `main':  
  2. a.c:(.text+0x28): undefined reference to `luaL_newstate'  
  3. a.c:(.text+0x3e): undefined reference to `luaL_openlibs'  
  4. a.c:(.text+0x81): undefined reference to `lua_close'  
  5. collect2: ld returned 1 exit status 

这是因为lua调用了标准库里的C API,因此要加上数据库。

小结:详解Lua程序语言安装环境的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-24 11:03:33

LUA环境 安装

2011-08-25 14:03:32

UbuntuLUA安装

2011-08-25 10:24:27

Lua

2012-08-13 09:31:33

程序

2012-08-13 09:40:12

语言编程语言程序语言

2011-09-06 17:45:14

LUA开发环境Decoda

2009-03-02 09:40:13

程序员程序语言开发

2011-08-25 15:02:17

Lua环境搭建EditPlus

2017-07-10 17:00:24

程序语言语言特性

2011-08-24 14:33:14

LUA开发环境Decoda

2011-09-01 19:06:57

UbuntuLua安装环境

2011-08-24 17:15:33

Lua源代码文件

2014-02-25 10:35:37

神经学程序语言

2012-06-27 10:28:12

编程语言语言学习多门语言

2011-05-19 14:00:51

PHP单引号双引号

2011-07-15 17:05:14

2011-08-25 13:58:25

LUA开发 工具安装

2011-08-24 10:13:00

Lua

2015-08-17 16:22:36

大数据

2014-08-01 10:06:36

大数据
点赞
收藏

51CTO技术栈公众号