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

pan*_*001 2 lua ffi luajit

我有一个共享库,其中有一些功能。我想通过使用 luajit 获取他们的签名来访问他们。

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

lua --> /usr/local/bin

要求(“test_c”)

标准输入:1:未找到模块“test_c”:

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'
Run Code Online (Sandbox Code Playgroud)

堆栈回溯:[C]:在函数“要求”标准输入:1:在主块 [C]:在 0x00404270

mot*_*eus 5

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

http://luajit.org/ext_ffi.html

local lib = ffi.load('some.dll')
ffi.cdef[[
  void hello (void);
]]
lib.hello()
Run Code Online (Sandbox Code Playgroud)