loadlib加载动态库问题
【 lua文件中代码 】
local path = "/xxx/complib.so"
local f = loadlib(path, "luaopen_complib")
complib.so为要加载的C程序动态库,luaopen_complib为动态库初始化函数的函数名(complib.c文件中的)
【 错误提示】
lua: test.lua:6: attempt to call a nil value (global 'loadlib')
stack traceback:
test.lua:6: in main chunk
[C]: in ?
dai
直接调用loadlib出错,修改后,如下:
【 第一次修改后程序 】
local path = "/xxx/complib.so"
local f = package.loadlib(path, "luaopen_complib")
print("12 + 13 = ", f.add(12, 13))
【 错误提示 】
lua: test.lua:8: attempt to index a function value (local 'f')
stack traceback:
test.lua:8: in main chunk
[C]: in ?
siyu
接收package.loadlib的变量f,调用时应使用“ f() ”,使用括号
【 第二次修改后程序 】
local path = "/xxx/complib.so"
local f = package.loadlib(path, "luaopen_complib")
print("12 + 13 = ", f().add(12, 13))
【 运行成功 】(此例子调用C加法函数)
12 + 13 = 25