我最近调查了Lua,看起来真的很棒。唯一令人烦恼的是它缺乏(标准)库。但随着JIT编译器出现了一个很好的FFI C接口。
来自java背景,我试图尽可能地避免使用C,所以我的问题是:有任何人对LuaJIT有一些经验,特别是它的FFI接口,以及为很少有人设置库有多困难不知道C?
答案 0 :(得分:16)
看起来对我来说非常简单,Mike Pall有一些很好的教程here,lua邮件列表中还包含一些很好的例子,所以查看档案
答案 1 :(得分:2)
为几乎没有的人建立一个图书馆有多难 C中的知识?
真的很容易。首先,您需要声明您想要使用的函数。然后,加载目标库并将其分配给Lua变量。使用该变量调用外部函数。
以下是使用C的数学库中的函数powf
的示例。
local ffi = require("ffi")
-- Whatever you need to use, have to be declared first
ffi.cdef([[
double powf(double x, double y);
]])
-- Name of library to load, i.e: -lm (math)
local math = ffi.load("m")
-- Call powf
local n, m = 2.5, 3.5
print(math.powf(n, m))