如何使用 Lua 调用共享库中的函数

我有一个共享库,在其中有一些函数。我想通过使用 luajit 获取它们的签名来访问它们。

我有一个 libtest_c.so -> /usr/local/lib

lua -> /usr/local/bin

require("test_c")

stdin:1: module 'test_c' not found:

no field package.preload['test_c']
no file './test_c.lua'
no file '/usr/local/share/luajit-2.0.4/test_c.lua'
no file '/usr/local/share/lua/5.1/test_c.lua'
no file '/usr/local/share/lua/5.1/test_c/init.lua'
no file './test_c.so'
no file '/usr/local/lib/lua/5.1/test_c.so'
no file '/usr/local/lib/lua/5.1/loadall.so'

stack traceback: [C]: in function 'require' stdin:1: in main chunk [C]: at 0x00404270

点赞
用户2328287
用户2328287

使用 Lua 调用共享库中的函数:

http://luajit.org/ext_ffi.html

local lib = ffi.load('some.dll')
ffi.cdef[[
  void hello (void);
]]
lib.hello()
2016-06-17 13:07:17