在 AIX 6.1 ppc64 上,为了加载 libm.a,我们的应用程序使用System.loadLibrary("m"). 或者它失败并显示错误消息
模块的幻数无效
根据 IBM 文档,当 32 位和 64 位二进制文件不匹配时,就会发生这种情况。或者,无论我们使用 Java6(32 位)还是 Java6_64(64 位)JVM,都会发生这种情况。所以情况并非如此。
另一个可能的原因是/usr/lib/libm.a不是共享库。但是我们就是libm.a在平台上找不到共享模式来使用!
根据 Javadoc,在 System.loadLibrary("name") 中,“name”到真实库的映射是系统相关的。在大多数 Unix 系统上,它被映射到 lib.so,而在 AIX 上,它被映射到 lib.a ;请注意,在 AIX 上,.a 可以是混合的,即。它可以包含静态和共享对象,32 位和 64 位对象。我的问题是在 AIX 上找到共享模式 libm.a。
有谁知道如何使用System.loadLibrary("m")加载一个libm.a?
PS
System.loadLibrary("m")在我们测试过的大多数 UNIX 平台上运行良好。