LuaJIT FFI有多难?

时间:2011-04-17 08:14:37

标签: c lua ffi luajit

我最近调查了Lua,看起来真的很棒。唯一令人烦恼的是它缺乏(标准)库。但随着JIT编译器出现了一个很好的FFI C接口。

来自java背景,我试图尽可能地避免使用C,所以我的问题是:有任何人对LuaJIT有一些经验,特别是它的FFI接口,以及为很少有人设置库有多困难不知道C?

2 个答案:

答案 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))