Lua学习之Mac下封装C模块

本文详细介绍了在Mac环境下如何封装C库供Lua使用,包括C文件编写、编译选项设置、动态库加载和Require的使用注意事项,帮助读者解决在mac下Lua调用C函数的常见问题。
摘要由CSDN通过智能技术生成

坚持 成长 每日一篇

前言

平时用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[] = {
    {
  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值