什么是共享库

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】工程
【NDK】【002】将C++代码编译为dll共享库
下载并配置MinGW
这是一个C++编译器,代码要靠它编译成程序或库,直接下载解压,配置下路径就可以了
【NDK】【002】将C++代码编译为dll共享库
编译工程,【Build】-【Build Project】
【NDK】【002】将C++代码编译为dll共享库
在编译目录下找到生成的dll文件
【NDK】【002】将C++代码编译为dll共享库
OK,完工!

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

相关文章:

  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-11
  • 2022-12-23
  • 2021-12-08
猜你喜欢
  • 2022-01-11
  • 2022-12-23
  • 2022-12-23
  • 2021-09-25
  • 2021-10-20
  • 2021-09-10
相关资源
相似解决方案