簡體   English   中英

使用Eclipse為JNI構建DLL

[英]Build DLL for JNI using Eclipse

我想使用Eclipse和Cygwin構建JNI DLL。 我知道這里有很多例子,但是沒有一個對我有用。 我花了兩天時間,但仍然無法使Eclipse正確構建frickin dll。

我可以在Visual Studio中使用優良的JNI代碼構建此Windows dll。 但是我的主要IDE是Eclipse,我希望將代碼放在一個地方,一個項目中。 當我在Eclipse中進行編譯時,我會得到一個dll,但是Java VM在加載該庫時崩潰,並且沒有錯誤告訴我出了什么問題。 所以我在想它鏈接的方式...這是VS2008進行編譯和鏈接的方式,我在此顯示VS的命令行:

使用Visual Studio編譯和鏈接DLL

/Od /I "C:\a_Mine\siglib\include" /I "C:\Program Files (x86)\Java\jdk1.6.0_25\include
\win32" /I "C:\Program Files (x86)\Java\jdk1.6.0_25\include" /I "..\..\include" /D 
"_CRT_SECURE_NO_WARNINGS" /D "SIGLIB_DLL_SOURCE=1" /D "_VC80_UPGRADE=0x0600" /D 
"_WINDLL" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /Fp".\Debug/dynamic_library.pch" 
/Fo".\Debug/" /Fd".\Debug/" /W3 /nologo /c /ZI /TP /errorReport:prompt

鏈接器MS命令行

/OUT:"Debug/siglib.dll" /INCREMENTAL /NOLOGO /LIBPATH:"C:\Program Files (x86)\Java\jdk1.6.0_25\lib" 
/DLL /MANIFEST /MANIFESTFILE:".\Debug\siglib.dll.intermediate.manifest" 
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:".\Debug/siglib.pdb" 
/DYNAMICBASE:NO /IMPLIB:".\Debug/siglib.lib" /MACHINE:X86 /ERRORREPORT:PROMPT 
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib 
ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

這是我的Eclipse Java-C / C +項目鏈接器。

g++ -L"C:\Program Files (x86)\Java\jdk1.6.0_25\lib" -L"C:\Program Files\Microsoft
SDKs\Windows\v6.0A\Lib\x64" -shared -o "myjni.dll" $(OBJS) $(USER_OBJS)  -lkernel32 
-luser32 -lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32 
-luuid -lodbc32 -lodbccp32 -ljvm

那么,如何使用Eclipse Cygwin使其正確鏈接或編譯?

您應該將日食更新到最新版本並獲取ADT ver20。 這將從構建以及所有可能需要編譯Windows dll的自定義腳本中刪除cygwin。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM