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提...