如何在JNI項(xiàng)目中修復(fù)UnsatisfiedLinkError(無(wú)法找到依賴庫(kù))我正在開(kāi)發(fā)一個(gè)使用JNI的Java項(xiàng)目。JNI調(diào)用我自己編寫的自定義庫(kù),比如mylib.dll,這取決于第三方庫(kù)libsndfile-1.dll。當(dāng)我運(yùn)行我的程序時(shí),它崩潰了java.lang.UnsatisfiedLinkError: C:\...path...\mylib.dll: Can't find dependent libraries.我搜索了這個(gè)網(wǎng)站(和其他人),我嘗試了一些修復(fù):我跑了依賴沃克。DW給出了一些警告 - libsndfile,MPR.DLL和SHLWAPI.DLL所需的兩個(gè)庫(kù)具有“未解析的導(dǎo)入” - 但DW FAQ表示可以安全地忽略這些警告。我修復(fù)了mylib.dll中的方法名稱,如此處所示。方法名稱在某種程度上被編譯器破壞了,但我添加了鏈接器標(biāo)志,現(xiàn)在dll方法名稱與我的jni頭文件中的名稱完全匹配。我將所有這些DLL放在同一目錄中 - 與調(diào)用它們的.jar相同的目錄 - 以確保它們位于正確的PATH上。沒(méi)有骰子。有誰(shuí)知道發(fā)生了什么事?我正在使用MacBook pro(通過(guò)Parallels)在Visual Studio 2010中進(jìn)行開(kāi)發(fā)。我正在使用toshiba筆記本電腦在Windows XP上進(jìn)行測(cè)試。
如何在JNI項(xiàng)目中修復(fù)UnsatisfiedLinkError(無(wú)法找到依賴庫(kù))
MYYA
2019-07-24 19:54:47