我正在尝试使用我在使用Makefile的linux机器上构建的System.loadLibrary("myDllFile")
来加载dll。我得到了
当我运行包含java.lang.UnsatisfiedLinkError c:\ test \ myDllFile.dll:无法在IA 32位平台上加载此.dll(机器代码= 0x101)
loadLibrary
语句的主java类时出现异常。我试图在Windows XP上运行java类。我需要一个单独的DLL用于Windows XP(32位)和Windows 7(64位)吗?
答案 0 :(得分:1)
这是对的。您必须移植本机代码才能在每个操作系统上运行,并将其单独链接。
但是,如果您实际拥有.dll
而不是.so
,则听起来您可能已经为Win64进行了交叉编译,当您打算为Win32执行此操作时。 (也许使用MinGW?)如果你有这样的交叉编译器设置,你应该能够为Win32和Win64指定构建。或者,如果您的Makefile碰巧不正常,您可以告诉您的64位Linux系统使用setarch i686
伪装成32位。
如果你有一个Linux .so
,那么移植到Windows需要更多的工作......