前面两篇中,已经介绍过如何搭建jni环境以及编写自己的一个jni调用(包括引入第三方类库 如openssl)
Jni:使用openssl库进行rsa加密解密 (环境搭建篇)
Jni:使用openssl库进行rsa加密解密(实现篇)
下面我们要说的是,如何在linux下面编译出我们需要的c++类库,也就是 libxxx.so的so文件 (这里注意,我们用到的文件是一定要以 lib开头的)
例如我们需要加载的是 System.loadLibrary(“MyJni”) 那么这个文件在linux下面的文件名称应该是 libMyJni.so,这里就不再做过多的介绍了。
我们以CentOS 7系统为例子。
编译文件
这里先编译出我们需要的 .o文件
例如,我们这里有三个cpp文件,分别是 1.cpp 2.cpp 3.cpp
其中 3需要调用2 2需要调用1,所以,我们的编译顺序应该是 1 -> 2 -> 3
前提说明 我的java_home以及openssl库分别如下
编译命令
g++ -fpic -I/opt/java/j