前言
一个同事在写nginx的lua扩展, 遇到了性能瓶颈, 于是想用C函数解决, 求助与我, 无奈我也不会lua, 只好硬着头皮上. 网上大部分博文都说怎么调用C的库函数, 却没有明确的说怎么调用自定义函数, 并且部分博文以centos, 作为平台. 无奈macos编译方法不一样, 初学者很容易踩坑, 这里简单的演示一下luajit 怎么调用C的自定义函数.
C自定义函数
void add(int x, int y)
{
return x + y;
}
lua脚本
local ffi = require("ffi")
ffi.load('demo', true)
ffi.cdef[[
int add(int x, int y);
]]
print(ffi.C.add(1, 2));
编译
这里用加-dynamic 然后生成.dylib文件
gcc -dynamic -o libdemo.dylib -shared demo.c
运行
luajit demo.lua
参考 地址
欢迎大家订阅雀观代码, 我将给你讲述, 中小企业程序员, 淘金路上的故事.