章魚lua擴充套件模組

2021-07-17 01:47:39 字數 2812 閱讀 8112

1.安裝ndk並設定環境變數

2.切換到project/jni目錄下執行ndk-build

注意:需要把so放到某個目錄中,我這裡是 /data/local/tmp!!!

例如:adb push mytestlib.so /data/local/tmp

//lua核心api宣告

#include "lua.h"

//lua輔助庫api宣告

#include "lauxlib.h"

//lua庫宣告

#include "lualib.h"

// 待註冊的c函式,該函式的宣告形式在上面的例子中已經給出。

static

int add(lua_state *l)

static

int sub(lua_state *l)

// lual_reg結構體的第乙個欄位為字串,在註冊時用於通知lua該函式的名字。

// 第乙個欄位為c函式指標。

// 結構體陣列中的最後乙個元素的兩個欄位均為null,用於提示lua註冊函式已經到達陣列的末尾。

static

const lual_reg mylibs = ,

,}; // 該c庫的唯一入口函式。其函式簽名等同於上面的註冊函式。見如下幾點說明:

// 1. 我們可以將該函式簡單的理解為模組的工廠函式。

// 2. 其函式名必須為luaopen_***,其中***表示library名稱。lua**require ***需要與之對應。

// 3. 在lual_register的呼叫中,其第乙個字串引數為模組名***,第二個引數為待註冊函式的陣列。

// 4. 需要強調的是,所有需要用到***的**,不論c還是lua,都必須保持一致,這是lua的約定,

// 否則將無法呼叫。

extern int luaopen_mytestlib(lua_state *l)

local_path

:= $(call my-dir)

include

$(clear_vars)

local_module

:= sdk

local_src_files

:= libsdk.so

include

$(prebuilt_shared_library)

include

$(clear_vars)

local_module_filename

:=mytestlib

local_module

:=mytestlib

local_shared_libraries

:=sdk

local_ldlibs

:=-lm -llog -lz -ljnigraphics

local_src_files

:=mytestlib.c

include

$(build_shared_library)

位於pc_debug.apk/octopus_sdk.apk/assets/solib/libsdk.so

package.cpath = package.cpath ..";/data/local/tmp/?.so"

local test = require("mytestlib")

traceprint(mytestlib.add(5,3))

traceprint(test.add(5,3))

@echo off

cd /d %~dp0

set "arch=arm"

set "api=14"

set version=4.9

set "ndkroot=d:\android-ndk-r12b"

set "hostsystem=windows-x86_64"

set "source=mytestlib.c"

set "target=mytestlib.so"

set "cflags=-l. -shared -lsdk -lm"

::以上可以自定義

set "sysroot=%ndkroot%\platforms\android-%api%\arch-%arch%"

if%arch%==x86 (

set "cc=%ndkroot%\toolchains\%arch%-%version%\prebuilt\%hostsystem%\bin\i686-linux-android-gcc.exe --sysroot=%sysroot%"

) else (

set "cc=%ndkroot%\toolchains\%arch%-linux-androideabi-%version%\prebuilt\%hostsystem%\bin\%arch%-linux-androideabi-gcc.exe --sysroot=%sysroot%"

)%cc%

%cflags% -o %target%

%source%

pause

lua安裝luasql擴充套件模組

使用lua sql 安裝lua日誌模組 結束語使用lua程式設計過程中不可避免的會用到mysql等資料庫,進行資料庫操作lua有luasql,各個資料庫操作的介面統一,用起來比較方便,但是這貨安裝起來有時候遇到問題會比較麻煩,下面介紹如何安裝luasql 1.安裝lua 2.安裝luarocks 3...

Nginx新增Lua擴充套件模組

nginx安裝目錄 with http ssl module 支援 ssl with http stub status module nginx狀態模組 add module usr local src ngx devel kit 0.3.0 lua模組 add module usr local s...

Lua擴充套件

lua作為配置檔案使用 win conf.lua 定義視窗大小 width 200 height 300使用lua api分析這個檔案,並獲取width和heightvoid load lua state l,const char fname,int w,int h table操作 lua 5.1提...