【NDK】【002】将C++代码编译为dll共享库

什么是共享库

C++代码可以编译成类库,直接分发给其它应用调用,这使得可以很容易地将自己的代码以库文件的形式共享给他人使用,同时还能保护源码不泄漏

C++共享库在Windows中以dll文件的形式存在,而在Linux系统中则以so文件的形式存在,这两种文件想必大家都不陌生,其实它们都是C++共享库,只是适用于不同平台的软件,并且都可以被JNI调用

将C++代码编译为dll共享库

现在我们已经知道,Windows系统中常见的dll文件,其实和Android中的so文件是同一性质的东西
为了让大家视野看得更宽广些,不局限于安卓开发,我们先来讲解如何编译dll库
虽然Android根本不可能调用dll库,因为dll是Windows动态链接库,依赖于Windows底层系统接口
但是大家以后开发做得多了,Java开发是免不了要和dll打交道的,dll调用也是JNI的重要一部分
至于so库,我们后面有的是机会讲,因为编译so库是NDK开发的第一步,不怕大家不会

我们这次使用CLion来编译dll库,相对于Visual Studio,CLion功能布局更清晰点,更重要的是,CLion和Android Studio一样,都是在IntelliJ Idea的基础上扩展而来,用法基本一样,只是适用语言不一样,因此基本没有学习成本

创建一个【C++ Library】工程
在这里插入图片描述
下载并配置MinGW
这是一个C++编译器,代码要靠它编译成程序或库,直接下载解压,配置下路径就可以了
在这里插入图片描述
编译工程,【Build】-【Build Project】
在这里插入图片描述
在编译目录下找到生成的dll文件
在这里插入图片描述
OK,完工!

这次我们只演示如何编译dll,用的是默认的C++代码
实际dll想要被JNI调用,在命名上是有规则的,这个我们下节再讲

发布了442 篇原创文章 · 获赞 45 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/u013718730/article/details/104420316