欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

后台开发中 调取so库

程序员文章站 2022-06-09 16:58:33
...

由于公司将算法全部放到云上做处理,因此需要创建linux的动态链接库进行线上使用,之前做Android的都知道Android自身是cmake进行编译成so库并通过JNI层和java进行调用的,那么同理。

第一步

  • 准备我们的linux环境
# yum install gcc
yum install gcc-c++ libstdc++-devel

增加我们的gcc的编译环境。

  • 准备我们的java环境(注意你的本地jdk版本要和云上保持相同,否则会出现版本大于50的error)
yum install java-1.8.0-openjdk*

第二部

进行编写jni层内容

public class CoBrainLib {

    static {
//        System.loadLibrary("/CoBrainLib");
        System.load("/root/cogrowth/libss.so");
    }
    public native float add(int x, int d);

    public static void main(String[] args) {
        System.out.println("Hello World!");
        float add = new CoBrainLib().add(1, 1);
        System.out.println("<     当前累加结果为:    " + add);
    }
}

我们使用

javah CoBrainLib

进行生成我们需要的JNi



extern "C"
JNIEXPORT jfloat JNICALL Java_com_cogrowth_algorithm_jni_CoBrainLib_add(JNIEnv *env, jobject /* this */oc, jint x, jint y) {
    return x+y;   //简单的加法
}

第三步

进行生成我们需要的so文件

g++ -I "/usr/lib/jvm/java-1.8.0/include/linux/" -I "/usr/lib/jvm/java-1.8.0/include" -fpic -shared -o /root/cogrowth/libss.so /root/cogrowth/CoBrainLib.cpp 

第四步

进行调用

java -jar test.jar  // 这里打了一个jar包

后台开发中 调取so库

相关标签: so