最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Linux下編寫(xiě)Lua擴(kuò)展so文件和調(diào)用方法實(shí)例

 更新時(shí)間:2015年05月05日 09:12:22   投稿:junjie  
這篇文章主要介紹了Linux下編寫(xiě)Lua擴(kuò)展so文件和調(diào)用方法實(shí)例,本文給出C語(yǔ)言代碼、編譯SO文件、Lua中調(diào)用代碼實(shí)例,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

#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"


/*  庫(kù) open 函數(shù)的前置聲明   */
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結(jié)尾 */
};


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

如果是.cpp文件,在luaopen_mylib一定要加 extern "C", 否則導(dǎo)出的函數(shù)會(huì)被重命名,切記切記

編譯:gcc mylibs.c -fPIC -shared -o libmylib.so -llua

復(fù)制代碼 代碼如下:

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調(diào)用腳本:
復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • Lua腳本語(yǔ)言概述

    Lua腳本語(yǔ)言概述

    這篇文章主要介紹了Lua腳本語(yǔ)言概述,本文講解了Lua是什么、Lua語(yǔ)言的特性、Lua的使用范圍、Lua的基本內(nèi)容、Lua虛擬機(jī)等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • Lua中的table淺析

    Lua中的table淺析

    這篇文章主要介紹了Lua中的table淺析,本文講解了table的構(gòu)造方法、內(nèi)置函數(shù)unpack等內(nèi)容,需要的朋友可以參考下
    2014-09-09
  • 分析Lua觀察者模式最佳實(shí)踐之構(gòu)建事件分發(fā)系統(tǒng)

    分析Lua觀察者模式最佳實(shí)踐之構(gòu)建事件分發(fā)系統(tǒng)

    當(dāng)對(duì)象間存在一對(duì)多關(guān)系時(shí),則使用觀察者模式(Observer Pattern)。比如,當(dāng)一個(gè)對(duì)象被修改時(shí),則會(huì)自動(dòng)通知依賴它的對(duì)象。觀察者模式屬于行為型模式
    2021-06-06
  • Lua文件讀寫(xiě)詳解

    Lua文件讀寫(xiě)詳解

    這篇文章主要介紹了Lua文件讀寫(xiě)詳解,本文講解了文件讀寫(xiě)的簡(jiǎn)單模型和完整模型,并給出了一個(gè)操作示例,需要的朋友可以參考下
    2015-04-04
  • C++遍歷Lua table的方法實(shí)例

    C++遍歷Lua table的方法實(shí)例

    這篇文章主要介紹了C++遍歷Lua table的方法實(shí)例,本文給出了Lua table數(shù)據(jù)格式、C++實(shí)現(xiàn)的遍歷代碼以及輸出效果,需要的朋友可以參考下
    2015-04-04
  • 詳解Lua中的元表和元方法

    詳解Lua中的元表和元方法

    Lua中的元表(Metatable)和元方法(Metamethods)是Lua語(yǔ)言中的重要概念,它們?cè)试S我們對(duì)對(duì)象和操作進(jìn)行自定義,本文講給大家詳細(xì)介紹一下Lua中的元表和元方法,需要的朋友可以參考下
    2023-09-09
  • Lua腳本語(yǔ)言基本語(yǔ)法快速入門(mén)教程

    Lua腳本語(yǔ)言基本語(yǔ)法快速入門(mén)教程

    這篇文章主要介紹了Lua腳本語(yǔ)言基本語(yǔ)法快速入門(mén)教程,本文是一個(gè)簡(jiǎn)易教程,快速的羅列了常用語(yǔ)法,有一定編程語(yǔ)言基礎(chǔ)的同學(xué)更容易看芯片,需要的朋友可以參考下
    2015-07-07
  • Lua中string.lower()使用指南

    Lua中string.lower()使用指南

    這篇文章主要介紹了Lua中操作字符串的基本方法整理,是Lua入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-08-08
  • Lua中遍歷文件操作代碼實(shí)例

    Lua中遍歷文件操作代碼實(shí)例

    這篇文章主要介紹了Lua中遍歷文件操作代碼實(shí)例,本文直接給出示例代碼,需要的朋友可以參考下
    2015-05-05
  • Lua教程(二十一):編寫(xiě)C函數(shù)的技巧

    Lua教程(二十一):編寫(xiě)C函數(shù)的技巧

    這篇文章主要介紹了Lua教程(二十一):編寫(xiě)C函數(shù)的技巧,本文講解了數(shù)組操作、字符串操作、在C函數(shù)中保存狀態(tài)等內(nèi)容,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

铜鼓县| 邵武市| 新乡县| 梁平县| 龙江县| 密山市| 永新县| 涿州市| 舞钢市| 堆龙德庆县| 西青区| 西乡县| 运城市| 衡山县| 达州市| 麟游县| 嫩江县| 二连浩特市| 藁城市| 清镇市| 河源市| 元谋县| 邛崃市| 滕州市| 武冈市| 岳普湖县| 且末县| 巴南区| 枞阳县| 江门市| 定安县| 育儿| 大埔县| 鄱阳县| 文登市| 邢台县| 广德县| 青田县| 吉木萨尔县| 富民县| 莫力|