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

一、创建c文件

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

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

二、创建so文件

cpp 复制代码
/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>

核心代码

java 复制代码
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);
    }

}

测试关键代码

java 复制代码
    public static void main(String[] args){
        SOTest soTest = new SOTest();
        soTest.add(1,1);
    }
相关推荐
IDRSolutions_CN8 分钟前
如何将 PDF 中的文本提取为 JSON 格式
java·经验分享·pdf·软件工程·团队开发
摘星编程29 分钟前
并发设计模式实战系列(6):读写锁
java·设计模式·并发编程
吴_知遇35 分钟前
【华为OD机试真题】428、连续字母长度 | 机试真题+思路参考+代码解析(E卷)(C++)
开发语言·c++·华为od
Java中文社群1 小时前
最火向量数据库Milvus安装使用一条龙!
java·人工智能·后端
LaoWaiHang1 小时前
MFC案例:使用键盘按键放大、缩小窗口图像的实验
c++·mfc
Apache Flink1 小时前
京东物流基于Flink & StarRocks的湖仓建设实践
java·大数据·flink
到底怎么取名字不会重复1 小时前
Day10——LeetCode15&560
c++·算法·leetcode·哈希算法·散列表
JAVA百练成神1 小时前
深度理解spring——BeanFactory的实现
java·后端·spring
兔子蟹子1 小时前
Java集合框架解析
java·windows·python
DKPT1 小时前
正则表达式
java·数据库·笔记·学习·正则表达式