lua 脚本语言的妙用

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jakejohn/article/details/87652378

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

运行结果:

展开阅读全文

没有更多推荐了,返回首页