我最近看着Lua,它看起來非常好。唯一令人討厭的是它缺乏(標準)庫。但隨着JIT編譯器出現了一個很好的FFI C接口。我試圖儘量避免使用C,所以我的問題是:有沒有人有使用LuaJIT的經驗,特別是FFI接口,以及爲有些人設置一個庫是多麼困難在C中沒有任何知識?LuaJIT FFI有多難?
10
A
回答
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))
相關問題
- 1. LuaJIT FFI字符串比較
- 2. luajit ffi實現塊終結器
- 3. 在LuaJIT創建回調的結構FFI
- 4. 愛2D和ffi luajit,試圖使用PHYSFS_enumerateFiles()
- 5. Luajit ffi如何在time.h中調用funcitons?
- 6. 將LuaJIT FFI結構轉換爲表
- 7. LuaJIT&FFI:如何正確使用char *?
- 8. luajit ffi函數返回字符串的奇怪輸出
- 9. 使用luajit ffi爲execvp將變量args轉換爲char * const []
- 10. luajit FFI構造函數的參數路由
- 11. 如何傳遞指向LuaJIT ffi的指針作爲out參數?
- 12. LuaJIT ffi:如何將字符串數組傳遞給c函數
- 13. 在LuaJIT FFI錯誤消息中使用結構體名稱
- 14. LuaJIT的FFI能否像JIT一樣被禁用?
- 15. 如何使用LuaJIT和FFI將clib函數合併到表中?
- 16. 如何使用LuaJIT FFI創建指向現有數據的指針?
- 17. LuaJIT矢量庫
- 18. luajit中的緩慢FFI.cast
- 19. Luajit FFI直接解引用不需要轉換的值的語義
- 20. 是否可以使用luajit ffi的C++名稱空間中的函數?
- 21. 在Java中嵌入LuaJIT
- 22. 通過luajit調用winhttp
- 23. luajit qsort回調示例內存泄漏
- 24. PKG_CHECK_MODULES附近luajit
- 25. 定製NopCommerce有多難?
- 26. 使用Lua寫入文件FFI
- 27. Haskell多線程有多困難?
- 28. LuaJIT沒有看到由LuaRocks安裝
- 29. LuaJIT相當於wlua.exe
- 30. 傳遞指針在LUA爲int FFI