FFI库,允许从纯Lua代码调用外部C函数,使用C数据结构。
FFI库最大限度的省去了使用C手工编写繁重的Lua/C绑定的需要。不需要学习一门独立/额外的绑定语言——它解析普通C声明。
代码
#include <stdio.h>
void print_hello()
{
print("hello lua from c");
}
local ffi = require("ffi")
local C = ffi.load("HelloC")
ffi.cdef[[
void print_hello();
]]
c.print_hello()
编译
# 编译C代码,环境 mac,如果是linux,--shared
gcc -c -g -O0 -Wall -I./ -o print_hello.o print_hello.c
gcc -dynamiclib -g -O0 -Wall -o libHelloC.dylib print_hello.o
#用luajit执行脚本
luajit main.lua
打印结果
hello lua from c
网友评论