Android Studio 关于 Cmake 的使用 —— 引用第三方库文件

转载请注明出处。 https://blog.csdn.net/ma598214297/article/details/78387847
本篇主要介绍如何使用已经建好的库文件(包括动态和静态库文件)。
需要了解如何构建 C/C++ 工程的请点击这里

第一步,构建支持C/C++的工程

第二步,把已经构建好的库加入工程(注意路径)

我加入的位置与app同一个父级目录。

这里写图片描述

第三步,配置CmakeList.txt信息

直接附上代码以及详细的注释,相信大家都可以很快清楚cmake脚本语言的含义。

与创建库文件一样在add_library()中第一个参数为库的名字,第二个参数SHARE表示动态库so,STATIC表示静态库.a。

set_target_properties()是用来链接你的库文件,与add_library()配套使用,第一个参数为库名字,最后一个参数代表文件路径。

target_include_directories() 第一个参数为当前工程新建的总库文件名,用PRIVATE隔开,后面的参数为需要链接的第三方库的头文件。

cmake_minimum_required(VERSION 3.4.1)  

set(CMAKE_VERBOSE_MAKEFILE on)  
# set()用来设置一个路径全局变量 distribution_DIR  
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../libBuild)  

# 创建一个静态库 lib_one 直接引用libone.a  
add_library(lib_one STATIC IMPORTED)  
set_target_properties(lib_one PROPERTIES IMPORTED_LOCATION  
    ${distribution_DIR}/one/lib/${ANDROID_ABI}/libone.a)  

# 创建一个动态库 lib_two 直接引用libtwo.so  
add_library(lib_two SHARED IMPORTED)  
set_target_properties(lib_two PROPERTIES IMPORTED_LOCATION  
    ${distribution_DIR}/two/lib/${ANDROID_ABI}/libtwo.so)  

#创建总的库native-lib并链接一个.c文件,可以直接引用第三方库的头文件  
add_library(native-lib SHARED  
            ${CMAKE_SOURCE_DIR}/src/main/cpp/native-lib.c)  
#链接第三方库的头文件  
target_include_directories(native-lib PRIVATE  
                           ${distribution_DIR}/one/include  
                           ${distribution_DIR}/two/include)  


find_library( log-lib  
              log )  

#把所有库文件都引入工程  
target_link_libraries( native-lib  
                       android  
                       lib_two  
                       lib_one  
                       # Links the target library to the log library  
                       # included in the NDK.  
                       ${log-lib} )  

然后build一下工程,编译通过的话,OK,这些库文件就全部导入成功了。

追加一点,一定要注意module 级gradle的配置,不要忘了加入你的lib的路径。

android{

sourceSets {

    main {
        // let gradle pack the shared library into apk
        jniLibs.srcDirs = ['../libBuild/two/lib']
    }
}
}

下面可以验证一下so库是否何如app,首先build apk,然后打开视图,看lib文件夹下是否已经有你需要的so。

这里写图片描述

下面关于带头文件的so/.a如何使用就十分简单了。

进入你cpp文件夹下的native-lib.c,include一下,你会发现这些与库文件配套的头文件自动弹出了,这就代表引用成功了

相信以上代码可以解决各位Android studio使用CMAKE引用第三方库遇上的大部分问题,如果接下来有时间,我会仔细研究一下cmake配置脚本,简单的处理一下语法问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值