作者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://www.ptt.cc/bbs/java/M.1410447882.A.A58.html
→ Killercat: 我沒在windows下跑過 不過gcc多加個-static旗標看看? 09/12 09:28
→ white8824: 還是不行耶 一樣的結果 09/12 14:37
推 wildrush: 為什麼編成hello.dll可是是要去load HelloWorld.dll? 09/12 20:05