单目跟踪位姿产品研发(二)----在linux下将c++工程打包成动态库so文件API

版权声明:个人学习笔记,欢迎批评指教,转载请尊重劳动成果,保持完整性,并注明出处 https://blog.csdn.net/SFM2020/article/details/82995622

       单目跟踪位姿项目由对方公司提供应用场景,我方研发核心算法,通过c++实现功能,然后对方公司通过java\js来开发炫酷的界面,共同合作完成,最终对方公司负责销售推广,推向市场。因此,涉及到java界面调用c++核心代码的问题。

现记录一下如何在linux下将c++工程生成动态链接库供java调用:

在qt中,我们可以直接生成动态链接库

生成:

1、新建项目:选择library模板,c++库,一路默认,完成项目创建;

2、接口头文件按照右图来写(注意extern "C"与export)、实现接口的函数实现内容放在同名的cpp文件中,调用相关核心代码;

3、release模式下构建工程,生成4个so文件(其中有三个是软链接,只有一个是真实文件)。

c++调用测试:

1、新建c++项目,项目名称上右键添加库,外部库、浏览库文件目录(即so文件),平台只选linux;

2、包含前者的2个shared头文件,写main函数调用即可。

详细的步骤可参考链接:http://blog.sina.com.cn/s/blog_a6fb6cc90102vsdn.html 这是在Windows下生成动态链接库dll文件的方法,过程基本一致。

需要注意的是,linux下生成的so文件,一般包括一个硬链接,几个软链接,软链接都是指向该硬链接的,不可或缺,在拷贝文件的时候若软链接不能拷贝,则可先打包压缩再拷贝。

另,除了可以通过调用动态链接库的方法,还可在控制台,调用cout打印的结果,进而达到java调用c++的目的。

 

猜你喜欢

转载自blog.csdn.net/SFM2020/article/details/82995622