• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

lua调用c动态库教程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

安装 5.2版本的库:sudo apt-get install liblua5.2-dev

版本不同调用的接口就不同,本文针对lua5.2

//lutil.c
#include <lua.h> #include <lauxlib.h> #include <string.h> #include <stdlib.h> //被lua调用的c接口的唯一函数原型: //typedef int (*lua_CFunction) (lua_State* L); static int lnum_add(lua_State* L) { double a = lua_tonumber(L, 1); //利用lua_tonumber获取参数 double b = lua_tonumber(L, 2); lua_pushnumber(L, a + b); //把返回值入栈 return 1; //表示返回的参数个数 } static int lnum_square(lua_State* L) { double n = lua_tonumber(L, 1); lua_pushnumber(L, n*n); return 1; } int luaopen_util(lua_State* L) { luaL_checkversion(L); luaL_Reg lst[] = { {"num_add", lnum_add}, {"num_square", lnum_square}, {NULL, NULL}, }; luaL_newlib(L, lst); return 1; }

 

#Makefile
util.so : lutil.c gcc -g -o $@ --shared $^ -I/usr/include/lua5.2 -L/usr/local/bin -llua5.2 -fPIC

 

--test.lua
local
util = require "util" print( util.num_add(2, 3)) print( util.num_square(6))

//执行过程

1.make

2.lua test.lua

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Redis进阶实践之十九Redis如何使用lua脚本发布时间:2022-07-22
下一篇:
lua 限流发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap