麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > 綜合 > 正文

Linux下編寫Lua擴展so文件和調用方法實例

2024-07-21 23:04:47
字體:
來源:轉載
供稿:網友

 

復制代碼 代碼如下:

#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))
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 精品一区二区三区免费 | 国产免费久久久久 | 日本aaa一级片 | 日本高清黄色片 | 国产高潮失禁喷水爽到抽搐视频 | 天堂在线中文资源 | 深夜福利视频绿巨人视频在线观看 | 国产精品久久久乱弄 | 嗯哈~不行好大h双性 | 黄色一级毛片免费看 | 欧美日韩中文字幕在线视频 | 日韩999 | 一级毛片免费一级 | 免费看成年人网站 | 精品一区二区三区在线观看国产 | 久久国产精品小视频 | 午夜视频中文字幕 | 国产一级片91 | 免费看污视频在线观看 | a一级黄色大片 | 久久蜜桃香蕉精品一区二区三区 | 国产精品成人免费一区久久羞羞 | 久久国产精品区 | 国产美女三级做爰 | 免费黄色入口 | 黄色av电影在线 | 电影av在线 | 日韩欧美电影一区二区三区 | 日韩黄色成人 | 久久性生活免费视频 | 欧美成人三级视频 | 久久国产夫妻视频 | 欧美性生话视频 | 国产成人在线观看网站 | 国产精品视频导航 | 黄色毛片视频在线观看 | 粉嫩粉嫩一区二区三区在线播放 | 中文字幕精品一二三四五六七八 | chinese-xvideos | 91网站永久免费看 | 欧洲成人av |