Chinaunix

标题: Can't load IA 32-bit .so on a IA 32-bit platform问题? [打印本页]

作者: nongdi    时间: 2009-04-21 17:42
标题: Can't load IA 32-bit .so on a IA 32-bit platform问题?
写个jni应用.
调用c++接口,库名称为liblogger.so
liblogger.so是我拷贝到/usr/java/jdk1.5.0_10/jre/lib/i386/client/下.

/usr/java/jdk1.5.0_10/jre/lib/i386/client目录:
-r--r--r-- 1 root root 12713984 2007-04-30 classes.jsa
lrwxrwxrwx 1 root root       13 2007-04-30 libjsig.so -> ../libjsig.so
-rwxr-xr-x 1 root root  4642134 2006-11-10 libjvm.so
-rwxr-xr-x 1 root root 11761449 04-21 17:28 liblogger.so
-rw-r--r-- 1 root root     1423 2006-11-10 Xusage.txt

异常为:
java.lang.UnsatisfiedLinkError: /usr/java/jdk1.5.0_10/jre/lib/i386/client/liblogger.so: Can't load IA 32-bit .so on a IA 32-bit platform

Makefile部分内容
g++ -shared -fPIC $(INL) -o liblogger.so $(INCLUDES) $(LDFLAGS) $(OBJ1) $(OBJ2) $(SHAREOBJ) $(SHARE_SOBJ) $(LOG_COMM) $(QRYOBJ) $(STUBS)
cp :

linux版本
Linux lichenghua 2.6.22.14-72.fc6 #1 SMP Wed Nov 21 15:12:59 EST 2007 i686 i686 i386 GNU/Linux

java版本
java version "1.5.0_10"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_10-b03)
Java HotSpot(TM) Client VM (build 1.5.0_10-b03, mixed mode, sharing)

g++版本
g++ (GCC) 4.1.2 20070626 (Red Hat 4.1.2-13)
Copyright (C) 2006 Free Software Foundation, Inc.


网上搜了下,也没找到具体原因.
版本不兼容?
有谁碰到过呢?怎么解决啊?
谢谢

[ 本帖最后由 nongdi 于 2009-4-21 17:50 编辑 ]
作者: ziggler    时间: 2009-04-21 17:51
标题: 回复 #1 nongdi 的帖子
是不是这个问题:
http://speedooo.blog.51cto.com/226772/42025

http://bbs.chinaunix.net/viewthread.php?tid=1435563&extra=
作者: ziggler    时间: 2009-04-21 17:53
http://forums.sun.com/thread.jspa?threadID=792436
作者: nongdi    时间: 2009-04-21 18:17
这个和path有关?
设置LD_LIBRARY_PATH后还是一样

java.lang.UnsatisfiedLinkError: /usr/java/jdk1.5.0_10/jre/lib/i386/client/liblogger.so: Can't load IA 32-bit .so on a IA 32-bit platform
这个错误是找到so文件,但不能load吧?

liblogger.so的属性是755
作者: nongdi    时间: 2009-04-21 18:27
原帖由 ziggler 于 2009-4-21 17:53 发表
http://forums.sun.com/thread.jspa?threadID=792436


这讨论的解决方案是设置LD_LIBRARY_PATH?
读蚯蚓水平有限
作者: nongdi    时间: 2009-04-21 22:16
http://learn-from-the-guru.blogs ... -tutorial-hell.html

java.lang.UnsatisfiedLinkError: /libverimatrix.so: Can't load IA 32-bit .so on a IA 32-bit platform
Bug in JDK5 - wrong error message. Use another VM (JDK6, Harmony) to get the correct stack trace.

明天试试看
作者: nongdi    时间: 2009-04-22 15:25
确定是版本的问题,换成jdk1.6.0_3,就可以了.
郁闷的是我的应用都是jdk1.5的.要改的话涉及的面很广.
直接升级对现有的应用有影响吗? 应用主要是用轻量级的webservice  tomcat+hessian

[ 本帖最后由 nongdi 于 2009-4-22 15:26 编辑 ]




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2