如何修复 JNI 项目中不满意的LinkError(找不到依赖库)
我正在开发一个使用JNI的Java项目。JNI 调用我自己编写的自定义库,比方说 mylib.dll,这取决于第三方库 libsndfile-1.dll。
当我运行我的程序时,它会崩溃
java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.
我已经搜索了这个网站(和其他网站),我尝试了许多修复程序:
我跑了依赖步行者。DW给出了一些警告 - libsndfile所需的两个库,MPR.DLL和SHLWAPI.DLL,有“未解决的导入” - 但DW FAQ说这些警告可以安全地忽略。
我修复了 mylib.dll 中的方法名称,如此处所示。方法名称以某种方式被编译器破坏了,但我添加了链接器标志,dll方法名称现在与我的jni头文件中的那些名称完全匹配。
我将所有这些 DLL 放在同一个目录中 - 与调用它们的.jar相同的目录 - 以确保它们位于正确的 PATH 上。
没有骰子。
有没有人知道发生了什么?
我正在MacBook Pro上(通过Parallels)在Visual Studio 2010中进行开发。我正在东芝笔记本电脑上以Windows XP进行测试。