| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6645 人关注过本帖
标题:请各路高手不吝赐教:java.lang.UnsatisfiedLinkError: no testdll.so in j ...
只看楼主 加入收藏
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
你打印一句话看看,先不要返回什么,先定义一个void的方法,然后在NATIVE里面printf一句话,看看能不能输出

可惜不是你,陪我到最后
2007-03-07 14:00
pheobus
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-3-7
收藏
得分:0 
十分感谢版主的帮助!
应该是刚才您说的System.loadLibrary("testdll.so")多了.so的原因。
我最初用的方法是System.load,这个用.so和去掉.so的库都试过。
但目前现在还存在下面这个问题,以前用System.load有这个问题,改用了loadlibrary后没有了,以为问题解决了。实际上是倒退了!
希望再麻烦看看是什么原因。
编译库时用了-fPIC.若不用会编不过有错误如下:
linux-z03057:~/workspace/CtoJavaTest # g++ -I/home/z03057/src/jdk1.6.0/include -I/ home/z03057/src/jdk1.6.0/include/linux -o testdll.so -shared GetPid.c
/usr/lib64/gcc/x86_64-suse-linux/4.1.0/../../../../x86_64-suse-linux/bin/ld: /tmp/ ccq6CLL8.o: relocation R_X86_64_32 against `__gxx_personality_v0' can not be used when making a shared object; recompile with -fPIC
/tmp/ccq6CLL8.o: could not read symbols: Bad value
collect2: ld returned 1 exit status
linux-z03057:~/workspace/CtoJavaTest #
linux-z03057:~/workspace/CtoJavaTest # javac GetPid.java
linux-z03057:~/workspace/CtoJavaTest # g++ -I/home/z03057/src/jdk1.6.0/include - I/home/z03057/src/jdk1.6.0/include/linux -w -fPIC -DPIC -o testdll.so -shared Ge tPid.c
linux-z03057:~/workspace/CtoJavaTest # java GetPid
/home/z03057/src/jdk1.6.0/jre/lib/i386/client:/home/z03057/src/jdk1.6.0/jre/lib/ i386:/home/z03057/src/jdk1.6.0/jre/../lib/i386:.:/home/z03057/src/jdk1.6.0/jre/l ib/i386/client:/home/z03057/src/jdk1.6.0/jre/lib/i386:/lib:/usr/lib:/usr/java/pa ckages/lib/i386:/lib:/usr/lib
Exception in thread "main" java.lang.UnsatisfiedLinkError: /root/workspace/CtoJa vaTest/testdll.so: /root/workspace/CtoJavaTest/testdll.so: wrong ELF class: ELFC LASS64
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1676)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at GetPid.<clinit>(GetPid.java:5)


2007-03-07 15:39
lutherlong
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-9-26
收藏
得分:0 
我用eclipse里头启动jboss的时候也遇到过,不过后来在配置jboss的里面有个path属性里append to library path 里面把c:\windows\system32给包含起来就可以拉
2007-09-26 15:34
快速回复:请各路高手不吝赐教:java.lang.UnsatisfiedLinkError: no testdll.so ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030325 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved