在具有luajit FFI的特定计算机上未找到DLL

在具有luajit FFI的特定计算机上未找到DLL,dll,lua,ffi,love2d,luajit,Dll,Lua,Ffi,Love2d,Luajit,我已经从源代码构建了Love2d。(注意:我对C/C++不是很熟悉。) 在lua中,我在我的计算机上加载dll,效果很好,但是当我给我的朋友发送应用程序进行测试时,他的机器无法识别dll 我给他发送了包含libgmeDLL的love2d二进制文件,以确保他不会只是把DLL文件放错地方。所以他在跑的和我在跑的完全一样 我的代码如下所示: ffi.cdef[[ ... ]] local gme = ffi.load("libgme") 这正是我朋友所犯的错误: lovegme.lua:4: can

我已经从源代码构建了Love2d。(注意:我对C/C++不是很熟悉。)

在lua中,我在我的计算机上加载dll,效果很好,但是当我给我的朋友发送应用程序进行测试时,他的机器无法识别dll

我给他发送了包含
libgme
DLL的love2d二进制文件,以确保他不会只是把DLL文件放错地方。所以他在跑的和我在跑的完全一样

我的代码如下所示:

ffi.cdef[[ ... ]]
local gme = ffi.load("libgme")
这正是我朋友所犯的错误:

lovegme.lua:4: cannot load module 'libgme.dll': The specified module could not be found.

根据
libgme
的编译方式,您可能有一些在您的计算机上满足的依赖项(例如,mingw库),但在另一台计算机上不满足


我会尝试几种方法:(1)在
load
命令中使用完整的文件名,(2)在中使用“profile”模式检查DLL加载过程中出现的故障,或(3)在您的计算机上使用相同的依赖项遍历器查看其他DLL libgme可能依赖的DLL,并将其包括在您的包/安装中。

可能是32位/64位不匹配,或者只是目录结构的问题。还有,你们都在使用什么操作系统?我们都在64位机器上使用Windows 10。libgme.dll和love.exe都是64位的。显然,问题在于libgme依赖于libstdc++。我在编译标志中添加了
-static-static libgcc-static libstdc++
,现在它可以工作了。谢谢