DLL не найдена на определенной машине с luajit FFI - PullRequest
2 голосов
/ 24 июня 2019

Я собрал Game Music Emu из источника для использования с Love2d.(Примечание: я не очень знаком с C / C ++.)

В lua я загружаю dll с FFI и на моем компьютере это прекрасно работает, но когдаЯ отправил своему другу приложение для тестирования, его машина не распознает DLL.

Я отправил ему двоичные файлы love2d с включенной в него библиотекой libgme, чтобы убедиться, что он не просто поместил файл DLL.Так что он работает точно так же, как я бегу.

Мой код выглядит так:

ffi.cdef[[ ... ]]
local gme = ffi.load("libgme")

Это точная ошибка, которую получает мой друг:

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

1 Ответ

1 голос
/ 25 июня 2019

В зависимости от того, как libgme скомпилирован, у вас могут быть некоторые зависимости, которые удовлетворены на вашем компьютере (например, библиотеки mingw), но не удовлетворены на другом компьютере.

Я бы попробовал несколько вещей: (1) использовать полное имя файла в команде load, (2) использовать режим «профиль» в обходчике зависимостей , чтобы проверить, что происходит сбой во время загрузки DLL, или (3) использовать тот же обходчик зависимостейна вашем компьютере, чтобы увидеть, от чего могут зависеть другие библиотеки libgme, и включить их в ваш пакет / установку.

...