Lua的离线安装, 与c语言的相互调用举例
1、Linux下的离线安装
这里给出编译好的lua库及离线安装时必须的其他库。
链接:https://pan.baidu.com/s/1rNJH8DWq2YBYLCo8IiFJCw
提取码:q3g7
里面包含三个文件和一个安装步骤说明,按照步骤可完成Lua库的安装。
2、C 语言调用Lua函数
linux下编写c语言 add.c文件,代码如下:
//add.c #include <stdio.h> #include "lua.h" #include "lualib.h" #include "lauxlib.h" lua_State* L; int luaadd(int x, int y) { int sum; lua_getglobal(L,"add"); //lua文件函数名称: add lua_pushnumber(L, x); //第一个参数 lua_pushnumber(L, y); //第二个参数 lua_call(L, 2, 1); //调用函数,该函数含有2个参数,1个输出结果 sum = (int)lua_tonumber(L, -1); //获取结果 lua_pop(L,1); //清理返回值 return sum; } int main(int argc, char *argv[]) { int sum; L = luaL_newstate(); //初始化lua luaL_openlibs(L); //加载lua基础库 luaL_dofile(L, "add.lua"); //加载lua脚本 sum = luaadd(10, 15); //调用函数 printf("The sum is %d \n",sum); //打印结果 lua_close(L); //清理Lua return 0; }
编写lua函数,文件名称为add.lua
function add(x,y) return x+y end
执行编译命令: gcc -o add add.c -llua -lm -ldl
运行 ./add 得到结果:
lgh@ubuntu:~/Desktop/LUA$ ./add The sum is 25
3、 lua调用 c 语言封装的函数