最佳答案
我正在做一个 Java 项目,它使用 JNI。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 常见问题说这些警告可以安全地忽略。
我修复了 mylib.dll 中的方法名,如建议的 给你所示。方法名称不知怎么地被编译器弄乱了,但我添加了链接器标志,现在 dll 方法名称与 jni 头文件中的名称完全匹配。
我将所有这些 DLL 放在同一个目录中——与。调用它们的 jar,以确保它们处于正确的 PATH 上。
没戏。
有人知道这是怎么回事吗?
我在 VisualStudio2010中使用 MacBook pro 进行开发(通过 Parallels)。我正在东芝笔记本电脑上用 WindowsXP 进行测试。