我从源代码构建了Game Music Emu以便用于Love2d。 (注意:我对C / C ++不太熟悉。)
在lua中,我用FFI加载了dll,并在我的计算机上运行良好,但是当我向我的朋友发送该应用进行测试时,他的机器无法识别DLL。
我向他发送了带有libgme
DLL的love2d二进制文件,以确保他不只是放错了DLL文件。因此,他正在运行的正是我正在运行的 exact 。
我的代码如下:
ffi.cdef[[ ... ]]
local gme = ffi.load("libgme")
这是我朋友得到的确切错误:
lovegme.lua:4: cannot load module 'libgme.dll': The specified module could not be found.
答案 0 :(得分:1)
根据libgme
的编译方式,您可能有一些在计算机上可以满足的依赖项(例如mingw库),而在另一台计算机上则不满足。
我会尝试几种方法:(1)在load
命令中使用完整文件名,(2)在dependency walker中使用“配置文件”模式检查DLL加载失败的原因,或者(3)在您的计算机上使用相同的依赖遍历器,以查看libgme可能依赖的其他DLL,并将它们也包含在您的软件包/安装中。