前言
在开发当中,我们难免会遇到需要使用别人提供so的时候,假如so只提供了纯c接口,怎么办。这一篇讲记录,如何使用cmake连接第三方so。
准备工作
- so一个,可以自己编译一个
- so对应的头文件
开发
在我们自己的c++中,引入so提供出来的接口头文件,并调用其中的一些方法。
编译
编译的过程主要是编写cmakelist文件,这个按照android studio上的cmake教程,没连接成功,下面就看下,连接成功的一种方法。
|
|
步骤如下:
- 指定版本
- 设置提供给我们的so路径(第二行)
- 设置提供给我们头文件路径(第三行)
- 导入头文件(4)
- 连接so(5)
- 指定本次生成的so
- 讲第三方so连接到本次生成的so中
- 连接log
连接log的一步可以去掉。如果没用到log的话。
做完这些,还需要在gradle里面配置abifliter,默认生成全平台,如果别人提供的不是全平台,有没设置fliter的话,编译不通过。
注意,别人提供的so,格式要对,libxxx.so的格式,别加奇怪的数字什么的。
demo
demo上传到github上了,Demo地址