luaJIT 调用 C代码打包成的so文件中的方法

注:文章只记录自己用的过程中的一些问题 和效果展示 如果没有帮助的话 请直接关闭
语法或者需要查询的知识点和需要安装的环境自行查询

  • 环境:
    windows 11
    LuaJIT-2.1.0-beta3

  • 代码

demo.lua

local ffi = require("ffi")      -- 加载ffi库

local myffi = ffi.load("demo.so")       -- 加载动态库

--  所有使用的库函数都要对其进行声明,类似C语言引入.h头文件
ffi.cdef [[
int show(int a, int b);
]]

--调用C代码
print(myffi.show(1,2))

demo.c

#include <stdio.h>

int show(int a, int b)
{
    if (a < 0) {
        return 0;
    } 
    return a + b;
}

  • 然后
    C代码编译成so文件
gcc -shared -fPIC demo.c -o libtest.so      
  • 使用luajit 方式运行lua文件
    luajit demo.lua
  • 需要注意下面lua脚本中的代码 调用的方法 需要和C中的代码保持一致 改后要统一!!
ffi.cdef [[
int show(int a, int b);
]]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容