CMake find_package命令(查找包)


本文作者:黄邦勇帅(原名:黄勇),QQ:42444472 (读者意见可发至QQ)
本系列文章是对**《C++语法详解》和《Qt5.10 GUI完全参考手册》**的增补,以增加读者对构建C++程序底层的了解。
主要对Makefile和CMake进行讲解,文章由浅入深,浅显易懂,看似简单却很有深度,是一本难得的比较全面的深入且细致的讲解Makefile和CMake的文章。
本系列文章主要参考文献为Microsoft官方文档,GNU make官方文档,CMake官方文档。


本文摘自本人所作《CMake、Makefile指南》

百度网盘地址
链接:https://pan.baidu.com/s/1ynEyr3Sqhv1SWvxmE5RLHQ?pwd=w9v3
提取码:w9v3

由于本人能力有限,文中难免有错漏之处,望广大读者指出更正,不胜感激
本文为原创文章,转载请注明出处,并注明转载自“黄邦勇帅(原名:黄勇)”,本文作者拥有完全版权


本文使用的工具及其版本情况
 本文使用的操作系统为windows10 22H2(64bit)
 cmake的版本为CMake 3.27.0-rc4
 本文使用mingw32-make生成器,其版本为GNU Make 4.2.1。
 本文使用的编译器为VC++,其版本为Visural Studio 2022,主要使用其中的cl、link等命令工具。编译器由CMake根据当前系统自动选择,若要指定自已的编译器,则需要手动配置比较多的CMake变量,详见对交叉编译和工具链的讲解。


第13章 CMake find_package()命令(查找包)

13.1 前提基础知识

13.1.1 何为包?

1、包可以简单的理解为含有一系列文件的集合,可将其类比为一个文件夹或压缩文件。因此,一个与程序有关的包通常是含有头文件(如.h)、静态库文件(如.lib)、动态库文件(如.dll)、与编译参数有关的文件、使用手册等文件的集合,所以,包的形式可以是一个文件夹、压缩文件、也可以是一个安装程序,只要其中包含有所需的文件即可,本文所指的包是以文件夹形式存在的包。由此可见,我们想要创建一个自已的包是非常容易的,只需将需要的文件放入一个文件夹中即可,该文件夹便是包。
2、包由谁提供?包通常由第三方提供,CMake不提供包。当然,我们也可以自已创建一个包。

13.1.2 CMake包

在这里插入图片描述

13.1.3 怎样编写CMake包

在这里插入图片描述

13.1.4 CMake包由谁提供

在这里插入图片描述

13.1.5 find_package()命令的作用

在这里插入图片描述

13.1.6 find_package()命令的格式及搜索模式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.2 find_package()基本命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

13.3 find_package()完整命令

13.3.1 find_package()完整命令语法及基本参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.3.2 配置模式的搜索目录

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.3.3 配置模式的搜索前缀及搜索顺序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.3.4 搜索指定根目录下的子目录

在这里插入图片描述

13.3.5 处理版本信息及版本文件变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.3.6 包(文件)接口变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.3.7 find_package()命令中各变量小结

在这里插入图片描述
在这里插入图片描述

13.4 使用CMake自带的模块CMakePackageConfigHelpers生成配置文件和版本文件

在这里插入图片描述

13.4.1 configure_package_config_file()命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13.4.2 使用write_basic_package_version_file()命令生成版本文件

在这里插入图片描述
在这里插入图片描述
读者可自行打开生成的文件查看其中的内容,这里就不列出了。
④、若在本示例中将兼容性设置为SameMinorVersion,则生成的ttConfigVersion.cmake文件的内容如下
读者可自行打开生成的文件查看其中的内容,这里就不列出了。

参考文献:CMake官方帮助文档


作者:黄邦勇帅(原名:黄勇)

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值