[問題] JNI執行問題

看板java作者 (hypocrisy*)時間9年前 (2014/09/11 23:04), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
最近剛開始找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

09/12 09:28, , 1F
我沒在windows下跑過 不過gcc多加個-static旗標看看?
09/12 09:28, 1F

09/12 14:37, , 2F
還是不行耶 一樣的結果
09/12 14:37, 2F

09/12 20:05, , 3F
為什麼編成hello.dll可是是要去load HelloWorld.dll?
09/12 20:05, 3F
文章代碼(AID): #1K4ReAfO (java)