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);
    }
相关推荐
Juan_20123 分钟前
P1041题解
c++·算法·题解·搜索
big狼王5 分钟前
SonarQube本地化搭建及代码检测并导出报告PDF
java·pdf·sonarqube·sonarscanner
杨筱毅6 分钟前
【Android】Handler/Looper机制相关的类图和流程图
android·java·流程图
SimonKing6 分钟前
【开发者必备】Spring Boot 2.7.x:WebMvcConfigurer配置手册来了(二)!
java·后端·程序员
冷崖13 分钟前
const 与 constexpr
c++·学习
DokiDoki之父17 分钟前
Spring—容器
java·后端·spring
一个龙的传说17 分钟前
springboot优雅停止的流程梳理
java·spring boot·rpc
枫叶丹441 分钟前
【Qt开发】多元素类控件(三)-> QTreeWidget
开发语言·数据库·c++·qt
hansang_IR1 小时前
【题解】P2217 [HAOI2007] 分割矩阵 [记忆化搜索]
c++·数学·算法·记忆化搜索·深搜
搬砖的工人1 小时前
记录WinFrom 使用 Autoupdater.NET.Official 进行软件升级更新
java·前端·.net