Не удается загрузить DLL при копировании на другой компьютер - PullRequest
0 голосов
/ 25 декабря 2018

Я построил Mecab.dll , используя Инструменты построения сообщества Visual Studio 2017 и могу загружать в Java с использованием JNI.Когда я копирую DLL на другой компьютер и пытаюсь загрузить в Java, это работает.

Dependency Walker показывает, что он использует некоторый DLL-файл из Visual Studio Build Tools , который недоступен на другом компьютере, поскольку это не машина разработки.

enter image description here

Как собрать библиотеку DLL, чтобы использовать ее на любом другом компьютере без установки Visual Studio / Build Tools?Я из фона Java и понятия не имею, как это сделать?Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 01 января 2019

Я обнаружил, что Dependency Walker часто дает красные селедки.Вы не дали нам достаточно, чтобы продолжить, но я предложу несколько теорий, которые могут вам помочь:

  • Попробуйте установить Redist-пакеты Visual Studio
  • Вы собрали DLL как сборку "Debug".Это обычно не переносимо на системы, которые не имеют ту же версию Visual Studio, так как вспомогательные библиотеки DLL не установлены.
  • Ваша скопированная библиотека DLL не является доверенной.Посмотрите, заблокирован ли файл, и если да, то разблокируйте его
  • Вы не делаете правильный вызов System.load () или System.loadLibrary (), чтобы найти библиотеку DLL в ее скопированнойместо.К сожалению, эти методы могут сообщать об успехе и все еще не могут получить доступ к вашим собственным методам.
  • Вы не поместили DLL в ПУТЬ.

Надеюсь, один из них получитты отклеилЕсли нет, опубликуйте свою трассировку стека ошибок и сообщения, чтобы мы могли вам помочь.

...