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

时间:2016-06-17 08:02:03

标签: lua ffi luajit

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

我有一个libtest_c.so - >的/ usr /本地/ lib中

lua - >的/ usr / local / bin中

  

需要( “test_c”)

stdin: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'

堆栈追溯:     [C]:在功能'需要'     stdin:1:在主要部分     [C]:在0x00404270

1 个答案:

答案 0 :(得分:4)

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

http://luajit.org/ext_ffi.html

local lib = ffi.load('some.dll')
ffi.cdef[[
  void hello (void);
]]
lib.hello()