2011-12-15 78 views
1

我想使用Eclipse和Cygwin構建JNI DLL。我知道那裏有很多例子,但其中沒有一個適合我。我已經花了2天時間,但仍然無法讓Eclipse正確構建一個frickin DLL。使用Eclipse爲JNI構建DLL

我可以在Visual Studio中用JNI代碼很好地構建這個Windows dll。但我的主要IDE是Eclipse,我希望代碼在一個地方,一個項目。當我在Eclipse中進行編譯時,我會得到一個dll,但Java VM在加載庫時崩潰,沒有錯誤告訴我什麼是錯誤的。所以我想它的方式我聯繫這...這裏是VS2008怎麼做的編譯和鏈接我顯示了VS命令行:

編譯和鏈接DLL對於使用Visual Studio的

/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 +項目。

​​3210

那麼,如何使用Eclipse Cygwin獲得此鏈接或編譯權?

+0

你有沒有這個問題?我也無法得到那個工具鏈的工作。我切換到Eclipse Indigo和Microsoft Visual C++工具鏈,一切都很好。 – Java42 2012-03-23 02:32:51

回答

1

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