我一直在关注JNI教程:
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/jniexamp.html
我的C库已成功构建,但我在使用它时遇到了问题。
当我在OpenSuse11上运行Eclipse中的Java程序时,出现以下错误:
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/lib/libfpdpReaderLib.so: /usr/lib/libfpdpReaderLib.so: ELF file data encoding not little-endian (Possible cause: endian mismatch)
我已经尝试重建库在gcc中强制使用“-mlittle-endian”,但这会失败,因为它使用的其他库显然是big-endian。
我可以强制java使用big-endian,因为机器的其余部分似乎是?任何想法,为什么我得到这种不匹配,因为我虽然JVM一般是大端?
感谢您的帮助!
更新23/11/2011:
gcc显然正在编译big-endian,它与所包含的库相匹配但是我很困惑为什么Java调用System.loadLibrary期待little-endian因为这与系统的其余部分相反...
我假设这是因为Java将在JVM中运行但是从我读过的内容我认为这将默认为big-endian ......?
我有什么想法可以改变我的Java期望?