我正在使用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中进行测试。