鸿蒙开发必看:三方库引用全攻略
📝往期推文全新看点(文中附带最新·鸿蒙全栈学习笔记)
1️⃣ 市场巨变,移动开发行业即将迎来“第二春”?
2️⃣ 鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
3️⃣ 嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
4️⃣ 对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
5️⃣ 鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
6️⃣ 记录一场鸿蒙开发岗位面试经历~
7️⃣ 持续更新中……
前言
DevEco Studio的native工程的C/C++部分当前只支持cmake脚本的编译,工程的目录结构如下图所示

在工程中引用第三方库有如下三种方式,

一、find_package模式
通过find_package,可以在指定目录下去搜索已安装的库(三方库构建完后执行install,会生成xxx-config.cmake之类的文件在安装目录下),如果可以找到对应的库,就可以获取头文件路径以及库的路径
二、add_subdirectory模式
可以通过顶层CMakeLists.txt调用子目录CMakeLists.txt的方式,这样就可以直接引用到第三方库的头文件路径和库
三、target_link_libraries模式
在库链接时直接链接第三方库
背景
DevEco Studio的native工程的C/C++部分是使用的cmake脚本来构建,开源社区上有很多C/C++三方库也是使用cmake来编译构建,这些三方库我们是否可以直接采用add_subdirectory的模式在DevEco Studio上使用?
分析
开源社区的三方库有些需要依赖其他三方库,有些不需要依赖其他三方库,通常依赖其他三方库都是通过使用find_package来引用。如果在DevEco Studio上面使用find_package,需要满足find_package的搜索条件,
一、指定find_package的搜索路径
这里可以使用CMAKE_FIND_ROOT_PATH来指定,如下图所示

图中xxx代表的就是三方库安装的路径
二、依赖库必须已存在,并且是通过install安装的
通过install安装,除了有lib和incldue文件,还有提供给find_package使用的文件,如下图所示

find_package通过这些文件来获取库的版本、库的头文件、库的名称等信息,假如没有这些文件,find_package将会找不到库。
总结
一、部分开源三方库的脚本可以在DevEco Studio上直接使用
这部分开源三方库没有其他库的依赖,可以直接使用add_subdirectory引用
二、有依赖的三方库的脚本不能在DevEco Studio上直接使用
需要配置搜索路径和提前将依赖的库都构建并安装完毕或者在顶层CMakeLists.txt中使用execute_process来调用shell命令,先把依赖库编译并安装完成
三方库引用的建议
在native工程中,三方库的使用建议都采用target_link_libraries模式来引用

更多推荐



所有评论(0)