Lua介绍:
Lua 是一个小巧的脚本语言。作者是巴西人(好像还没有接触过巴西人~)。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和维护。
Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。
环境搭建
wget -c http://www.lua.org/ftp/lua-5.3.0.tar.gz
tar zxvf lua-5.3.0.tar.gz
2、下载libreadline相关支持
sudo apt-get install libreadline5
sudo apt-get install libreadline-gplv2-dev
3、编译以及安装
cd lua-5.3.0
make linux
sudo make install
4、测试
$ lua
Lua 5.1.2 Copyright (C) 1994-2007 Lua.org, PUC-Rio
>print("Hello World!")
示例代码
lua脚本 test.lua
print("lua script test.lua have been load--")
nction showinfo()
print ("hello world")
end
function lua_add(a,b)
return a+b
end
function lua2c_add(a,b)
return add(a,b)
end
c调用代码
lua.c
#include <stdio.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
int main(int argc, char *argv[])
{
lua_State *L = lua_open();
L = luaL_newstate();
luaL_openlibs(L);
luaL_dofile(L, "test.lua");
lua_getglobal(L,"showinfo");
lua_pcall(L,0,0,0);
lua_getglobal(L,"lua_add");
lua_pushinteger(L,1);
lua_pushinteger(L,5);
lua_pcall(L,2,1,0);
printf("lua add function return val is %d \n",lua_tointeger(L,-1));
lua_close(L);
return 0;
}
编译:gcc lua.c -o Clua -llua -lm -ldl -lrt
运行结果: