如何使用make C程序部分调用JNI中的.a库

时间:2013-03-13 15:15:11

标签: java c linux java-native-interface shared-libraries

我是JNI的新手,我正试图在java中调用c函数。

C程序使用.a库。但是,为了创建用于生成.so库的目标文件。

我无法将c pragram链接到.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库?

提前致谢!

1 个答案:

答案 0 :(得分:1)

试试这个:

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

GCC可以(并且应该)使用链接器包装器,因此它可以轻松地组装二进制文件。