如何在JNI项目中修复UnsatisfiedLinkError(无法找到依赖库)

如何在JNI项目中修复UnsatisfiedLinkError(无法找到依赖库)

我正在开发一个使用JNI的Java项目。JNI调用我自己编写的自定义库,比如mylib.dll,这取决于第三方库libsndfile-1.dll。

当我运行我的程序时,它崩溃了

java.lang.UnsatisfiedLinkError:  C:\...path...\mylib.dll: Can't find dependent libraries.

我搜索了这个网站(和其他人),我尝试了一些修复:

  1. 我跑了依赖沃克。DW给出了一些警告 - libsndfile,MPR.DLL和SHLWAPI.DLL所需的两个库具有“未解析的导入” - 但DW FAQ表示可以安全地忽略这些警告。

  2. 我修复了mylib.dll中的方法名称,如此处所示。方法名称在某种程度上被编译器破坏了,但我添加了链接器标志,现在dll方法名称与我的jni头文件中的名称完全匹配。

  3. 我将所有这些DLL放在同一目录中 - 与调用它们的.jar相同的目录 - 以确保它们位于正确的PATH上。

没有骰子。

有谁知道发生了什么事?

我正在使用MacBook pro(通过Parallels)在Visual Studio 2010中进行开发。我正在使用toshiba笔记本电脑在Windows XP上进行测试。


MYYA
浏览 1177回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP