【发布时间】:2016-05-31 21:07:45
【问题描述】:
大多数examples online 的 C-to-Lua 实现表明 C 程序与 Lua 状态和编译器混在一起,甚至以特殊方式编译这两个文件以使其正常工作。
但是有没有办法从 Lua 调用 C 函数,而 C 程序不知道它将在 Lua 程序中使用?
我的意思是加载 Lua 库:为此,我只需调用
module = require("/path/library")
module.doSomething()
来自标准的 Lua 解释器,而我在网上找到的 C-to-Lua 示例说,你不仅必须修改 C 程序以适应 Lua,而且还需要以特殊方式编译它们,例如那个。
那么,是否可以从标准 Lua 解释器调用 C 函数,而无需知道 C 模块将在 Lua 中使用?
我不知道它是否有任何帮助,但我正在使用 LuaJIT。
【问题讨论】:
-
LuaJIT 支持 FFI。
-
哦,废话,我现在感觉很愚蠢。
-
还有 LUAFFI 和外星人库与常规 Lua 一起工作。 Ant 也绑定到 Tiny C(libtcc)。