2013-04-20 75 views
1

我是JNI的新手。在JNI中鏈接靜態庫

我想將靜態庫(比如說libFoo.a)鏈接到我正在創建的動態庫中。這個動態庫是從我的Java類中調用的。

這可能嗎?如果是這樣如何?

gcc -I$JAVA_DIR/include -I$JAVA_DIR/include/linux -o libXY.so -shared jni/xy.c libFoo.a 

回答

1

問:我想將一個靜態庫(比如說libFoo.a)鏈接到我創建的動態庫中。這可能嗎?答:當然可以。只需將您的.a靜態庫包含在您建立共享.so的鏈接命令中即可。

這與JNI本身無關 - 任何共享二進制文件(* nix .so或Windows .dll)都可以用這種方式鏈接到共享庫中。

這些鏈接應該有所幫助:

+0

什麼樣libX.la.基於的libtool .la共享庫我可以使用相同的方法來包含它嗎?我嘗試過,但得到一些錯誤。 – 2013-04-21 10:35:58