我是 JNI 的新手,我想在 java 中调用 c 函数。
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库?
提前致谢!
最佳答案
试试这个:
gcc -shared JNIFitnessPart.o libtoolkit.a -lm \
-o libJNIFitness.so -Wl,-soname,libJNIFitness.so
GCC 可以(并且应该)使用链接器包装器,因此它可以轻松地组装您的二进制文件。
关于java - 如何使用使 C 程序部分调用 JNI 中的 .a 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15389207/