【问题标题】:How to call a function in shared library using Lua如何使用 Lua 调用共享库中的函数
【发布时间】:2016-10-18 23:25:04
【问题描述】:

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

我有一个 libtest_c.so --> /usr/local/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]:在函数“要求”中 标准输入:1:在主块中 [C]: 在 0x00404270

【问题讨论】:

    标签: lua ffi luajit


    【解决方案1】:

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

    http://luajit.org/ext_ffi.html

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

    【讨论】:

      猜你喜欢
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      相关资源
      最近更新 更多