作者white8824 (hypocrisy*)
看板java
标题[问题] JNI执行问题
时间Thu Sep 11 23:04:39 2014
最近刚开始找JNI相关的资料
有到这个网址是用简单的helloworld去让java call c
http://blog.163.com/ct2007_km/blog/static/8550514220123273392591
我照他的步骤做
最後的指令 gcc -shared -o hello.dll HelloWorld.c 也有出现
Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloWorld.print()V
这个问题 用dll export viewer 去看发现dll档函数名Java_HelloWorld_print@8
多了@8这个码 所以找不到
也跟着他的步骤改成下面这个指令
gcc -shared -Wl,--kill-at -o hello.dll HelloWorld.c
执行後产生的dll档函数名变正确了 Java_HelloWorld_print 後面没有@8
网页上面是说改了之後就可以正常执行了
但我执行还是出现UnsatisfiedLinkError: HelloWorld.print()V这个错误阿耶= =
是哪里出问题了呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.166.124.210
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/java/M.1410447882.A.A58.html
1F:→ Killercat: 我没在windows下跑过 不过gcc多加个-static旗标看看? 09/12 09:28
2F:→ white8824: 还是不行耶 一样的结果 09/12 14:37
3F:推 wildrush: 为什麽编成hello.dll可是是要去load HelloWorld.dll? 09/12 20:05