Cmake系列(三) 在 CMakeLists.txt 引入第三方so库

2023-05-16

将 so 库和头文件拷贝到对应的目录

/app/src/main/jniLibs/arm/libxxx.so

修改 CMakeLists.txt 文件 

第三方so库 这里和之前在第二步中介绍的创建一个新的原生库类似,
区别在于最后一个参数,我们通过IMPORTANT标志告知CMake只希望将库导入到项目中。 

目标库的路径 这里有几点需要说明

1、CMAKE_SOURCE_DIR}表示的是CMakeLists.txt所在的路径,我们指定第三方so所在路径时,应当以这个常量为起点。

2、我们应当为每种ABI接口提供单独的软件包,那么,我们就可以在jinLibs下建立多个文件夹,每个文件夹对应一种ABI接口类型,之后再通过${ANDROID_ABI}来泛化这一层目录的结构,这样将有助于充分利用特定的CPU架构。

3、第三方的库关联到原生库 这里和将NDK库关联到原生库的原理是一样的。
不过,为了确保CMake可以在编译时定位我们的头文件,我们需要将include_directories()命令添加到CMake构建脚本中并指定头文件的路径

add_library( 
	#指定目标导入库. 
	imported-lib 
	
	#设置导入库的类型(静态或动态) 为 shared library. 
	SHARED 
	
	#告知 CMake imported-lib 是导入的库 
	IMPORTED 
)

set_target_properties( 
	# 指定目标导入库 
	imported-lib 
	# 指定属性(本地导入的已有库) 
	PROPERTIES IMPORTED_LOCATION 
	# 指定你要导入库的路径. 
	# ${CMAKE_SOURCE_DIR} imported-lib/src/${ANDROID_ABI}/libimported-lib.so )
	#为了确保CMake可以在编译时定位到我们的头文件,我们需要使用include_directories()命令,并包含头文件的路径
	include_directories( imported-lib/include/ )
	
	
#要将预构建库关联到我们的原生库,请将其添加到 CMake 构建脚本的 target_link_libraries() 命令中 
target_link_libraries( 
	# 指定了三个库,分别是native-lib、 imported-lib和log-lib. 
	native-lib 
	imported-lib 
	# log-lib是包含在 NDK 中的一个日志库 
	${log-lib} 
)	

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cmake系列(三) 在 CMakeLists.txt 引入第三方so库 的相关文章

  • 我的大一学习生活总结

    今天最后的一科英语考完了 xff0c 但此刻的我并不觉的轻松 xff0c 我知道从现在开始就标志着我的大一已经结束了 xff0c 在大学仅有的四年时光就过去了四分之一 回想起大一这一年 xff0c 自问一下我到底学到了什么 xff1f 我发
  • 一个程序员的一生

    一个程序员的一生 作者 佚名 我在程序员的时候 xff0c 我一开始追逐这个API怎么用 xff0c 数据库SQL怎么写更优化 xff0c Dcom技术的细节 xff0c 然后我发现我写出来的产品为了符合客户 需求必须要大量修改 xff0c
  • E: Package ‘cmake‘ has no installation candidate

    在ubuntu中使用 sudo apt get install cmake 报错 xff1a E Package 39 cmake 39 has no installation candidate 解决方法 xff1a sudo apt g
  • 函数程序设计实验五:打印购物小票

    module HaskellStore where import Text Printf type Items 61 Item type Item 61 Name Amount Price type Name 61 String type
  • CSS实战——百度搜索首页

    成果 支持搜索内容 步骤 一般来说 xff1a 使用css 43 div进行页面的布局 xff0c css一般是用外联进行开发使用html进行每一个页面的填充 注意事项 id的命名规范 xff1a 父标签id 自己的idcss一般一个选择器
  • UNIX环境高级编程

    环境配置 1 下载apue 3e文件夹 xff0c 可以通过http www apuebook com code3e html现在源码 2 解压后执行进入apue 3e中执行make指令 如果出现 96 96 96 collect2 err
  • 常见的亮灭屏流程分析

    一 亮屏主要关键log 驱动按键时间 lt 3 gt 14082 058160 0 70 pmic thread kpd Power Key generate pressed 61 1 上层按键时间 09 25 15 13 07 19666
  • 冒烟测试和回归测试的区别

    每次新的版本出来的时候 xff0c 老大就让我们 冒烟 虽然不知道冒烟测试的含义 xff0c 但由于没有给用例 xff0c 我就随便跑跑 跑完冒烟后 xff0c 老大就让做 回归测试 xff0c 把bug回归掉 但是其实对2个概念还是不太理
  • 老旧电脑在虚拟机安装ubuntu运行环境的步骤及注意事项

    花了一天的时间在我的老电脑上用虚拟机装上了ubuntu xff0c 多灾多难 xff0c 记录一下问题和注意事项 老电脑的配置 xff1a cpu xff1a Intel Core TM 2 Duo CPU E7500 64 2 93GHz
  • x11vnc

    x11vnc display 0 auth guess rfbport 5900 forever shared noxdamage noncache repeat amp auth 关窗口退出 auth guess 关窗口不退出 用户注销退
  • 多个生产者和消费者线程

    span class token comment 作者 xff1a kuma 版本 xff1a v1 0 span span class token keyword public span span class token keyword
  • C/C++ 开源库及示例代码

    C C 43 43 开源库及示例代码 说明 本页面汇总俺收集的各种 C 和 C 43 43 的开源代码库 xff0c 不定期更新 如果你发现本页面的开源库有错漏之处 xff0c 非常欢迎给俺提供反馈 有 GitHub 帐号的同学 xff0c
  • UEFI分区的重建办法,不需要额外软件

    如果你的EFI分区还在 只是被破坏需要修复的话 xff0c 执行 bcdboot c windows l cn zh 即可 xff0c c是Windows安装的盘符 xff0c 如果是装机工具启动可能window的分区不是显示的c 如果连E
  • powershell 设置环境变量

    cmd 是用set 导出变量 xff0c 到了powershell中不好使了 xff0c 下面介绍下导出变量的方法 xff0c 比如想设置 ETCDCTL API 61 3 在powershell中执行下面命令就可以了 Env ETCDCT
  • Httpd 服务

    httpd服务 1 httpd服务简介 Apache HTTP Server xff08 简称Apache或httpd xff09 是Apache软件基金会的一个开放源代码的网页服务器软件 xff0c 旨在为unix xff0c windo
  • Lottie—json文件解析

    Lottie主要类图 xff1a Lottie对外通过控件LottieAnimationView暴露接口 xff0c 控制动画 LottieAnimationView继承自ImageView xff0c 通过当前时间绘制canvas显示到界
  • Android中获取应用程序(包)的信息-----PackageManager的使用

    Android系统为我们提供了很多服务管理的类 xff0c 包括ActivityManager PowerManager 电源管理 AudioManager 音频管理 等 除此之外 xff0c 还提供了一个PackageManger管理类
  • Android开发与调试二:串口uart Debug

    安卓智能硬件开发板 xff0c 往往会预留一个 uart口 xff0c 串口的形式打出 log出来 xff0c 便于我们开发的时候 debug 工具 xff1a 1个 FT232的模块 xff08 如下图 xff0c 淘宝有卖 xff09
  • 正则表达式以及Java中的一个正则表达式处理库

    如果你不熟悉这个术语 xff0c 那么 正则表达式 xff08 Regular Expression xff09 就是一个字符构成的串 xff0c 它定义了一个用来搜索匹配字符串的模式 正则表达式30分钟入门教程 常用正则表达式 许多语言
  • Ubuntu包安装问题(E: Broken packages)[2014-01-03更新]

    问题描述 使用apt get安装软件包时不能正确安装 xff0c 出现提示如下 xff1a apt get install libgtk2 0 dev Reading package lists Done Building dependen

随机推荐