我想用C语言编写一些函数在Lua中使用,最简单的方法就是使用LuaJIT的FFI。
我有一个C文件“add.c”:
int add(int a, int b){
return a+b;
}
我将它组装成“add.o”:
gcc -c add.c
我制作“add.dll”:
gcc - shared -o add.dll add.o
最后,我尝试在LuaJIT中运行以下Lua代码:
local ffi =require("ffi")
local test=ffi.load("C:\\users\\quebe\\Desktop\\add")
ffi.cdef[[
int add(int a,int b);
]]
print(test.add(1,2))
并获得:
luajit: test.lua:3: cannot load module 'C:\users\quebe\Desktop\add': %1 is
not a valid Win32 application.
stack traceback:
[C]: in function 'load'
test.lua:3: in main chunk
[C]: at 0x7ff72be120c0
但我不知道如何将其解释为调试。
答案 0 :(得分:2)
答案 1 :(得分:0)
这听起来像您要加载的dll具有无法加载的依赖dll,通常是因为它们不在Windows搜索路径中。