将C注册到lua环境中使用

注册到lua的方式有两种,一种是lua解释器,如果支持动态链接,使用动态链接机制,将函数接口编译成动态链接库,然后将动态链接库放到lua的C路径(LUA_CPATH)中,然后在lua文件中直接使用 require "xxx",这句话会使主机编写的动态链接库链接到lua,并寻找xxx,将模块注册到package.loaded中。 另一种方式是直接将自己写好的接口函数与lua源文件一起重新编译生成一个新的lua解释器,使用新的解释器代替旧的。此外,还需要以某种方式来告诉解释器,它应在打开新状态的同时打开这个模块。

使用动态库链接方式将接口注册到lua环境

static luaL_Reg xxx[] = {

{"xya", xya},

{"bbb", bbb},

{NULL, NULL}

};

int luaopen_xxx(lua_State *L)

{

/*create module*/

luaL_register(L, "xxx", xxx);

return 1;

}

参考资料:

https://blog.csdn.net/nice_xp/article/details/52712140