当前位置: 首页 > article >正文

springboot 调用 c++生成的so库文件

一、创建c文件

SoTest.h
#pragma once
class SoTest
{
	int Add(int a,int b);
};
SoTest.cpp
#include "SoTest.h"

int SoTest::Add(int a, int b) {
	return a + b;
}

二、创建so文件

/home/ubuntu/projects/SoTest/bin/x64/Debug/libSoTest.so

三、java代码

Maven依赖

<dependency>
	<groupId>net.java.dev.jna</groupId>
	<artifactId>jna</artifactId>
	<version>5.9.0</version>
</dependency>

核心代码 

public class SOTest {
    public interface SoTest extends Library {
        static SoTest INSTANCE = Native.load("/home/ubuntu/projects/SoTest/bin/x64/Debug/libSoTest.so", SoTest.class);

        int _ZN6SoTest3AddEii(String x, int a, int b);         // c方法
    }


    public int add(int a, int b) {
        return SoTest.INSTANCE._ZN6SoTest3AddEii("", a, b);
    }

}

测试关键代码 

    public static void main(String[] args){
        SOTest soTest = new SOTest();
        soTest.add(1,1);
    }


http://www.kler.cn/a/515999.html

相关文章:

  • 电子应用设计方案103:智能家庭AI浴缸系统设计
  • arcgis短整型变为长整型的处理方式
  • Linux应用编程(五)USB应用开发-libusb库
  • MyBatis Plus 的 InnerInterceptor:更轻量级的 SQL 拦截器
  • 基于ESP32-IDF驱动GPIO输出控制LED
  • 动态内存管理
  • selenium clear()方法清除文本框内容
  • 单例模式 - 单例模式的实现与应用
  • 动静态库的制作与使用(Linux操作系统)
  • 深圳大学-计算机系统(3)-实验四处理器结构实验一
  • 设计模式的艺术-迭代器模式
  • Unity|小游戏复刻|见缝插针1(C#)
  • mybatis(57/134)
  • Python 轻松扫描,快速检测:高效IP网段扫描工具全解析
  • Web 音视频(二)在浏览器中解析视频
  • Lisp语言的区块链
  • H266/VVC 量化编码中 TCQ(或 DQ)技术
  • oppo25届秋招补录内推来啦
  • 算法中的时间复杂度和空间复杂度
  • Jetson Xavier NX (ARM) 使用 PyTorch 安装 Open3D-ML 指南
  • GESP202309 三级【进制判断】题解(AC)
  • 【易康eCognition实验教程】003:点云数据加载浏览与操作详解
  • 探索WPF中的RelativeSource:灵活的资源绑定利器
  • Linux——文件与内存
  • 【c语言日寄】Vs调试——新手向
  • 大模型 / 智能体在智能运维领域的应用总结与发展趋势概述