LuaJIT FFI有多难?

我最近开始接触 Lua,感觉非常好。唯一让人烦恼的是它缺乏(标准)库。但是随着 JIT 编译器的出现,还有一个不错的 FFI C 接口。

我出自 Java 背景,尽可能避免使用 C,所以我的问题是:有没有人对 LuaJIT 有一些经验,特别是它的 FFI 接口,对于一个几乎没有 C 知识的人来说设置库有多困难?

原文链接 https://stackoverflow.com/questions/5692396

点赞
stackoverflow用户255049
stackoverflow用户255049

很简单,而且 Mike Pall 在这里有一些不错的教程 here,Lua 邮件列表也包括一些好的例子,因此也可以查看档案。

2011-04-17 08:55:54
stackoverflow用户134758
stackoverflow用户134758

有没有 C 语言知识较少的人如何设置一个库?

非常简单。首先,您需要声明要使用的函数。然后,加载目标库并将其分配给 Lua 变量。使用该变量调用外部函数。

以下是使用 C 的 math 函数库的 powf 函数的示例。

local ffi = require("ffi")

-- 必须先声明要使用的函数
ffi.cdef([[
   double powf(double x, double y);
]])

-- 库名称, 例如: -lm (math)
local math = ffi.load("m")

-- 调用 powf()
local n, m = 2.5, 3.5
print(math.powf(n, m))
2015-09-15 14:21:32