编写自己的C函数,编译链接成动态链接库 , 供lua使用
sum2.c
#include
#include
#include
#include
static int ding_sum2(lua_State *L){
double d1 = luaL_checknumber(L, 1);
double d2 = luaL_checknumber(L, 2);
lua_pushnumber(L, d1+d2);
return 1;
}
static const struct luaL_Reg ding_lib[] = {
{"ding_sum2" , ding_sum2},
{NULL, NULL}
};
int luaopen_ding_lib(lua_State *L){
luaL_newlib(L, ding_lib); // 5.2
//luaL_register(L, "ding_lib",ding_lib); // lua 5.1
return 1;
}
头文件需要自己添加自己的,各自的用途需自行百度查询
使用 gcc sum2.c -fPIC -shared -o ding_lib.so 生成动态库
编写测试文件test2.lua
local mylib = require "ding_lib"
print(type(mylib))
print(mylib.ding_sum2(23,17))
参考学习网址
随便找个目录编写一个lua 脚本
在另外的一个目录再编写一个lua脚本
test_add.lua
package.path = "/home/ding/data/?.lua;" .. package.path
local abc = require "add"
print(type(abc))
print(sum2(1,2))
注意写对 package.path
lua require""参看学习网址