SET PATH = "/ cygdrive / c / Program Files / Java / jdk1.8.0_45";% PATH%
отаю над проектом 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 FAQ сказал, что эти предупреждения можно смело игнорировать.
Я исправил имена методов в mylib.dll, как предложеноВот, Имена методов каким-то образом были искажены компилятором, но я добавил флаги компоновщика, и теперь имена методов dll теперь точно совпадают с именами в моем заголовочном файле jni.
Я поместил все эти библиотеки DLL в один каталог - тот же каталог, что и .jar, который их вызывает, - чтобы убедиться, что они находятся на правильном пути.
Нет кости.
Кто-нибудь знает, что происходит?
Я занимаюсь разработкой в Visual Studio 2010 на MacBook Pro (через Parallels). Я провожу тестирование в Windows XP на ноутбуке Toshiba.