現在、Eclipse CDTとMinGWを使用して、JNI用にDllをコンパイルしようとしています。MinGWのコンパイラオプションWl、kill-atが機能しない
チュートリアルの後、ネイティブメソッドを宣言したJavaクラスを作成し、javahを使用して関連するヘッダーファイルを取得し、C++クラスで実装しました。
C++コードは非常にシンプルで、コンパイルは動作しますが、私はJavaクラスにライブラリをロードするとき、私はこのエラーを取得:私は「探求」
Exception in thread "main" java.lang.UnsatisfiedLinkError: Main.integerMethod(I)I
at Main.integerMethod(Native Method)
at Main.main(Main.java:12)
のdllをし、方法ことがわかったことすべて "@ 14"のような接尾辞が付いています。問題は、私はすでに、これらの非常に恥ずかしいタグを削除する必要がある-Wl、 - kill-atコンパイラオプションを使用しています...なぜそれが動作しないのですか?
コンパイルログは以下の通りです:
**** Rebuild of configuration DLL for project JniCTest ****
**** Internal Builder is used for build ****
g++ -IC:\Program Files\Java\jdk1.6.0_13\include -IC:\Program Files\Java\jdk1.6.0_13\include\win32 -O3 -Wall -c -fmessage-length=0 -mno-cygwin -D__int64=long long -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -oMain.o ..\Main.cpp
g++ -o libJniCTest.dll -Wall -D_JNI_IMPLEMENTATION_ -Wl,--kill-at -shared -olibJniCTest.dll Main.o
Build complete for project JniCTest
Time consumed: 375 ms.
は、コンパイラオプションについて何か問題はありますか?助けてくれてありがとう。
ありがとうございましたdudeは私のために働いた – Akhilesh