1

私はJNIが初めてで、Javaでac関数を呼び出そうとしています。

C プログラムは .a ライブラリを使用します。ただし、.so ライブラリを生成するために使用するオブジェクト ファイルを作成するには。

c プログラムを .a ライブラリにリンクできません。私が使用したコマンドは

gcc -I./toolkithdir/ -I/usr/lib/jvm/java-6-openjdk-i386/include/ -c -fPIC JNIFitnessPart.c -o JNIFitnessPart.o libtoolkit.a -lm

-c オプションが使用されているため、libtoolkit.a はリンクされません。

Javaでc関数を呼び出すにはどうすればよいですか?c関数は.aライブラリも使用できますか?

ありがとうございます!

4

1 に答える 1

1

これを試して:

gcc -shared JNIFitnessPart.o libtoolkit.a -lm \
    -o libJNIFitness.so -Wl,-soname,libJNIFitness.so

GCC はリンカー ラッパーとして使用できます (使用する必要があります)。そのため、バイナリを簡単にアセンブルできます。

于 2013-03-13T15:35:14.530 に答える