大家好,我是一个新手,最近一个项目需要在linux下使用到jni,简单的说就是在一个java程序里加载一个自己写的.so文件,而问题在于这个.so文件又需要调用其它动态库。具体是这样的,比如这里有一个test.c文件,我们要使用它,需要一个静态库lib***.a(test.c里要调用该静态库的方法),3个动态库,-lcap,-lpthread,-lz(系统有的),按如下方式编译gcc -o out test.c -L. -lcap -lpthread -lz,最后可执行文件out可以顺利运行。
现在我们需要一个java程序能够实现相同功能,比如写了一个test.java,使用jni生成了.h头文件,然后我们自己实现一个c程序,这个c程序会调用上面提到的lib***.a里的函数,我们初步的想法是把该c程序编译成.o文件,然后把lib***.a静态库全部解压出.o文件,在一起生成.so文件,但是另外3个动态库怎么处理呢?可能说得不是很清楚,呵呵,望高手指点,十万火急!