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

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

作者: 不na讷 | 来源:发表于2022-05-24 16:29 被阅读0次

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

  • 环境:
    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);
]]

相关文章

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/lbnjprtx.html