我有一個項目與一些JNI裏面有一個生成文件來編譯在Windows 10 64位下的dll
。對於軟件約束,我需要爲32位JRE編譯我的dll
庫。爲什麼我的方法拋出`UnsatisfiedLinkError`?
我的makefile文件如下:
CC32=C:\i686-w64-mingw32-gcc\bin\i686-w64-mingw32-g++.exe
CC64=C:\Program\ Files\mingw-w64\x86_64-6.2.0-win32-seh-rt_v5-rev1\mingw64\bin\g++.exe
all: LibJNI32.dll LibJNI64.dll
LibJNI32.dll: LibJNI.cpp LibJNI.h
${CC32} -shared -o [email protected] $< -mtune=generic -m32 -std=gnu++11 -O2 \
-I. -IC:\Program\ Files\ (x86)\Java\jdk1.8.0_151\include -IC:\Program\ Files\ (x86)\Java\jdk1.8.0_151\include\win32
LibJNI64.dll: LibJNI.cpp LibJNI.h
${CC64} -shared -o [email protected] $< -mtune=generic -fPIC -m64 -std=gnu++11 -O2 \
-I. -IC:\Program\ Files\Java\jdk1.8.0_121\include -IC:\Program\ Files\Java\jdk1.8.0_121\include\win32
LibJNI.h: LibJNI.java
javah -o LibJNI.h -cp ../java my.package.LibJNI
雖然兩者LibJNI32.dll
和LibJNI64.dll
通過我的java程序也被加載,只能調用與LibJNI64.dll
作品JNI。 LibJNI32.dll
投擲UnsatifiedLinkError
。
有沒有什麼我的生成文件丟失,編譯好32位?
那麼你在使用什麼版本的java?一個64位版本可能? – UKMonkey
我使用32位jre。但是,因爲我發佈了我的問題,我的問題轉化爲'無法找到依賴庫'。 – dooxe
incase你仍然卡住 - 依賴沃克是你的朋友這 – UKMonkey