坚持 成长 每日一篇
前言
平时用mac的同学可以看下,在mac下如何封装一个C库给lua用,这两天看了好多帖子都没有成功打包,今天这里做一个详细的教程,总结一下。
实例
首先我们写一个C文件,代码如下
test.c
#include "lauxlib.h"
#include "lualib.h"
#include "lua.h"
//待注册的C函数,该函数的声明形式在上面的例子中已经给出。
static int add(lua_State* L)
{
double op1 = luaL_checknumber(L,1);
double op2 = luaL_checknumber(L,2);
lua_pushnumber(L,op1 + op2);
return 1;
}
static int sub(lua_State* L)
{
double op1 = luaL_checknumber(L,1);
double op2 = luaL_checknumber(L,2);
lua_pushnumber(L,op1 - op2);
return 1;
}
//luaL_Reg结构体的第一个字段为字符串,在注册时用于通知Lua该函数的名字。
//第一个字段为C函数指针。
//结构体数组中的最后一个元素的两个字段均为NULL,用于提示Lua注册函数已经到达数组的末尾。
static const struct luaL_Reg mylibs[] = {
{