一个Lua调用C函数的简单例子
Luajit 是针对Lua开发的一款即时编译器, 提供了FFI库, 可以方便使用C接口的动态库.
先准备一个C语言的库
mytest.c
int add(int x, int y)
{
return x + y;
}
编译动态库文件libmytest.so
g++ mylib.c --shared -o libmytest.so
Lua文件test.lua
local ffi = require("ffi")
local mytest = ffi.load('mytest')
ffi.cdef[[
int add(int x, int y);
]]
local result = mytest.add(1, 2)
print(result)
执行test.lua
luajit test.lua
如果出现动态库找不到的情况下,可以执行下面的命令:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<动态库所有目录>