2011-12-15 33 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所需的所有自定义脚本。