看板 java 關於我們 聯絡資訊
最近剛開始找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