主页 > 知识库 > Linux下编写Lua扩展so文件和调用方法实例

Linux下编写Lua扩展so文件和调用方法实例

热门标签:免费门店地图标注注册入驻 电话机器人每天搜索多少次 海口智能语音电销机器人好用吗 陕西便宜电销机器人软件 衡水外呼线路解决 杞县地图标注app 艾比利外呼系统 昆明电话外呼系统好么 外呼系统一天耗费多少流量

复制代码 代码如下:

#include stdio.h>
#include stdlib.h>
#include ctype.h>
#include errno.h>
#include string.h>
 
#include unistd.h>
#include fcntl.h>
#include sys/stat.h>
#include limits.h>
 


#include math.h>
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"


/*  库 open 函数的前置声明   */
int luaopen_mylib(lua_State *L);


static int l_sin (lua_State *L)
{
double d = luaL_checknumber(L, 1);
lua_pushnumber(L, sin(d));
//printf("ok now is  luahook!\n");
return 1; /* number of results */
}


static const luaL_Reg mylib[] =
{
{"lsin", l_sin},
{NULL, NULL} /* 必须以NULL结尾 */
};


 int luaopen_mylib(lua_State *L)
{
  luaI_openlib(L, "mylib", mylib, 0);
return 1;
}

如果是.cpp文件,在luaopen_mylib一定要加 extern "C", 否则导出的函数会被重命名,切记切记

编译:gcc mylibs.c -fPIC -shared -o libmylib.so -llua

复制代码 代码如下:

Makefile文件
CXX =gcc
LIBNAME:=libmylib.so
HDRNAME:=mylibs.c
TARGETNAME:=mylibs
CNAME:=$(patsubst %,%.c,$(TARGETNAME))
ONAME:=$(patsubst %,%.o,$(TARGETNAME))
all:libmylib
libmylib: $(ONAME)
$(CXX) -g -shared -Wl,$(LIBNAME) \
-o $(LIBNAME) $(ONAME) -llua
%.o: %.c
$(CXX) -fPIC -c -Wall $(CNAME)clean:$(RM) *.o *.so

lua调用脚本:
复制代码 代码如下:

local one, two, three = package.loadlib("libmylib.so", "luaopen_mylib")()
print(mylib.lsin(10))

您可能感兴趣的文章:
  • Python下调用Linux的Shell命令的方法
  • 利用Golang如何调用Linux命令详解
  • Linux makefile 和shell文件相互调用实例详解
  • 浅谈在linux kernel中打印函数调用的堆栈的方法
  • 详解Linux驱动中,probe函数何时被调用
  • 三种方法实现Linux系统调用
  • 举例讲解Linux系统下Python调用系统Shell的方法
  • Python在Windows和在Linux下调用动态链接库的教程
  • Linux下使用python调用top命令获得CPU利用率
  • Java调用linux shell脚本的方法
  • 详解linux系统调用原理

标签:南京 海口 临沧 泰安 营口 昌都 西宁 宿迁

巨人网络通讯声明:本文标题《Linux下编写Lua扩展so文件和调用方法实例》,本文关键词  Linux,下,编写,Lua,扩展,文件,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《Linux下编写Lua扩展so文件和调用方法实例》相关的同类信息!
  • 本页收集关于Linux下编写Lua扩展so文件和调用方法实例的相关信息资讯供网民参考!
  • 推荐文章