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

转载 2018年04月16日 13:09:05

转载请注明出处。 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配置脚本,简单的处理一下语法问题。

Android Studio 详解

下面,说一下下载安装过程: 来自动于http://blog.csdn.net/yanbober/article/details/45306483。 下载安装 下载AS前先说下,AS安装包分为含SDK版...
  • lixuce1234
  • lixuce1234
  • 2017-03-14 11:23:25
  • 3240

Android Studio2.0 教程从入门到精通Windows版 - 安装篇

前言 这个教程你将学会如何使用Android Studio2.0开发Android应用,从安装到开发Hello World都是采用图文并茂的方式讲解的,希望对你学习Android Studio开...
  • q469587851
  • q469587851
  • 2018-03-23 09:02:46
  • 331

AndroidStudio3.0 下载使用新功能介绍

谷歌2017发布会更新了挺多内容的,而且也发布了AndroidStudio3.0预览版,一些功能先睹为快。(英语一般,有些翻译不太好)下载地址https://developer.android.goo...
  • niubitianping
  • niubitianping
  • 2017-05-21 18:34:38
  • 50954

Android dp方式的屏幕适配工具使用(Android Studio插件方式)

转载自 android阿杜 的博客 :Android dp方式的屏幕适配工具使用(Android Studio插件方式) dp方式屏幕适配...
  • fengshiguang2012
  • fengshiguang2012
  • 2018-03-22 16:44:53
  • 126

Android Studio VS Eclipse (还在用Eclipse?你OUT了!)

公司派来一个去美国参加完AnDevCon大会的来给我们分享大会上学习的内容。 AnDevCon并非类似于苹果的WWDC和Google I/O,而是民间的android程序员组织,Google来sup...
  • ljx19900116
  • ljx19900116
  • 2014-12-08 18:33:21
  • 16547

Android Studio入门到精通

PS一句:最终还是选择CSDN来整理发表这几年的知识点,该文章平行迁移到CSDN。因为CSDN也支持MarkDown语法了,牛逼啊!目标:Android Studio新手–>下载安装配置–>零基础入门...
  • yanbober
  • yanbober
  • 2015-04-27 09:59:21
  • 121662

Android Studio 超级简单的打包生成apk

Android Studio 超级简单的打包生成apk为什么要打包: apk文件就是一个包,打包就是要生成apk文件,有了apk别人才能安装使用。打包分debug版和release包,通常所说的打包指...
  • woaichimahua
  • woaichimahua
  • 2017-01-14 16:51:24
  • 76497

Android Studio入门指南 (史上最全,全球首发)

8月份的时候因为Android开发团队全部使用Android Studio进行开发,所以我整理了Android Studio的一些资料,并写成入门指南,分享给大家。 如果大家觉得对你有帮助,给个赞哈,...
  • wirelessqa
  • wirelessqa
  • 2013-11-06 09:10:37
  • 205991

Android studio安装教程

Android studio完整的安装教程 1.要安装Android studio首先要安装JDK,以及Java环境变量的配置。JDK的安装以及环境变量的配置可以参考一下教程 http://jin...
  • zhiqiang_com
  • zhiqiang_com
  • 2017-02-24 12:50:13
  • 31611

Android开发入门经典实例

androidandroid-studio 0  2  From:https://www.tianmaying.com/tutorial/a-simple-sample-for-androi...
  • It_BeeCoder
  • It_BeeCoder
  • 2016-09-25 14:57:22
  • 71396
收藏助手
不良信息举报
您举报文章:Android Studio 关于 Cmake 的使用 —— 引用第三方库文件
举报原因:
原因补充:

(最多只允许输入30个字)