编写自己的C函数,编译链接成动态链接库 , 供lua使用
sum2.c
#include <math.h> #include <lua.h> #include <lauxlib.h> #include <lualib.h> 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))
参考学习网址
http://www.linuxidc.com/Linux/2014-09/106763.htm
http://www.cnblogs.com/dyllove98/archive/2013/06/25/3155599.html
随便找个目录编写一个lua 脚本
在另外的一个目录再编写一个lua脚本
test_add.lua
package.path = "/home/ding/data/?.lua;" .. package.path local abc = require "add" print(type(abc)) print(sum2(1,2))
lua require""参看学习网址
http://blog.chinaunix.net/uid-552961-id-2736410.html
http://blog.csdn.net/langeldep/article/details/8289199