zoukankan      html  css  js  c++  java
  • JNA调用.a静态库

    步骤:

    1. 新建.c文件,引入静态库,编译为so动态库

    2.JNA调用so

    例子:

    1.已经存在的静态库文件welcome.h、libwelcome.a

    #ifndef _WELCOME_H
    #define _WELCOME_H
    
    void welcome();
    
    #endif
    //welcome.c样例
    #include<stdio.h>
    #include"welcome.h"
    
    void welcome()
    {
        printf("welcome to my code world!
    ");
    }
    //生成libwelcome.a,项目背景中已经存在
    gcc -Wall -O2 -fPIC -I./  -c -o welcome.o welcome.c
    ar crv libwelcome.a welcome.o

    2.新建test.c,调用welcome中函数

    #include<stdio.h>
    #include "welcome.h"
    void test(void)
    {
        welcome();
    }
    //编译
    gcc -Wall -O2 -fPIC -I./  -c -o test.o test.c

    3.把静态库直接打到动态库中去

    gcc -shared test.o -L. -lwelcome -o libtest.so

    生成libtest.so,lwelcome选项把libwelcome.a的函数加入动态库中

    4.java中调用libtest.so

    import com.sun.jna.Library;
    import com.sun.jna.Native;
    
    public interface Clibrary extends Library{
        Clibrary INSTANCE = (Clibrary) Native.loadLibrary("test", Clibrary.class);
    
        void test();
    }
    Clibrary.java
    public class TsetJNA {
        public static void main(String[] args) {
            Clibrary.INSTANCE.test();
        }
    }
    TsetJNA.java

    5.下载jna-5.6.0.jar

    6.执行

    javac -cp :./jna-5.6.0.jar *.java

    java -cp :./jna-5.6.0.jar TsetJNA

  • 相关阅读:
    GO 爬虫图片相关
    GO 爬虫链接
    Redis使用
    HTTP请求
    lris框架基础案例
    UDP通信功能
    C++随机
    matplotlib显示指数部分的负号
    使用opencv-python读取中文路径图片
    pytorch模型可视化,torchviz,tensorboardX,文本方式
  • 原文地址:https://www.cnblogs.com/erbing/p/13903238.html
Copyright © 2011-2022 走看看