2011-04-17 175 views
10

我最近看着Lua,它看起來非常好。唯一令人討厭的是它缺乏(標準)庫。但隨着JIT編譯器出現了一個很好的FFI C接口。我試圖儘量避免使用C,所以我的問題是:有沒有人有使用LuaJIT的經驗,特別是FFI接口,以及爲有些人設置一個庫是多麼困難在C中沒有任何知識?LuaJIT FFI有多難?

回答

16

好象很簡單對我來說,和Mike鮑爾上有here,lua的郵件列表中還包括一些很好的例子一些不錯的教程,所以檢查出的檔案以及

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