Lua載入C庫的問題

2021-10-04 01:17:01 字數 1007 閱讀 8508

寫了乙個測試lua呼叫的c庫,如下:

標頭檔案:

#ifndef __c_lib_h_file__

#define __c_lib_h_file__

extern "c"

//int mymax( lua_state * l );

#endif // __c_lib_h_file__

cpp檔案

#include "clib.h"

#include #include #include int mymax( lua_state * l )

else

return 1;

}const struct lual_reg funcs=

,

};extern "c"

__attribute__ ((visibility("default")))

int luaopen_libtestlib( lua_state *l )

然後編譯,用的lua指令碼如下:

function callc()

local testlib = require("libtestlib")

print ( testlib.mymax( 12, 6 ) )

endprint("c path:", package.cpath )

print("hello module")

callc()

呼叫方式:生成的庫和lua指令碼在同乙個目錄,呼叫方式如下:

lua usec.lua
然後就發現死活找不到寫c函式庫,後來使用assert()把rquire("libtestlib")包住,發現輸出資訊是無法找到鏈結庫,為什麼呢?

輸出package.cpath,報錯,說package是個nil值。

後來開啟synaptic,發現安裝的lua包是不完整的,找了個lua5.1安裝後,才正確輸出結果。

c 動態庫多層動態載入的問題

問題描述 今有第三方庫曰xplico,將xplico.c中的main函式改寫成xplico main然後修改makefile,將之由可執行程式改造成動態庫libxplico.so 然後編寫測試程式test.cpp 與libxplico.so放到同一路徑下 其內容如下 include include ...

使用lua靜態庫的問題

最近在搞lua的時候遇到乙個問題,就是使用lua靜態庫的時候總是出現error lnk2019 無法解析的外部符號 void cdecl lual openlibs struct lua state 還有其它的一些函式,lual newstate,lua close,lual loadfile 這幾...

Unity toLua載入lua的流程

unity中我們要載入lua檔案呼叫的函式是 luastate類中的dofile 我們可以看到流程是 luastate dofile luastate loadfilebuffer luafileutils readfile findfile public void dofile string fi...