2016-05-29 65 views
3

C到Lua实现的大部分examples online都显示C程序与Lua状态和编译器混淆,甚至以特殊方式编译这两个文件以正常工作。在Lua中包含C库

但是有没有一种方法可以从Lua中调用C函数,而不需要C程序知道它将用于Lua程序中?

我的意思是这样加载一个Lua库:要做到这一点,我只是叫

module = require("/path/library") 
module.doSomething() 
从一个标准的Lua解释

,而C到Lua的我在网上找到的例子说,不仅你有修改你的C程序以适应whit Lua,但是你也需要以特殊的方式编译它们。

那么,是否有可能从一个标准的Lua解释器中调用C函数,而不使用C模块知道它将在Lua中使用?

我不知道它是否可以提供任何帮助,但我正在使用LuaJIT。

+2

LuaJIT支持FFI。 – lhf

+0

哦,废话,我现在觉得很愚蠢。 – user6245072

+1

还有LUAFFI和外星人图书馆与常规Lua合作。那里的Ant还绑定了Tiny C(libtcc)。 – moteus

回答