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 回答