find_package()的查找*.cmake的顺序
1、 find_package(<Name>)
命令首先会在模块路径中寻找 Find<name>.cmake
,这是查找库的一个典型方式。具体查找路径依次为CMake:
变量${CMAKE_MODULE_PATH}
中的所有目录。如果没有,然后再查看它自己的模块目录 /share/cmake-x.y/Modules/ ($CMAKE_ROOT
的具体值可以通过CMake中message
命令输出)。这称为模块模式。
2、 如果没找到这样的文件,find_package()
会在~/.cmake/packages/
或/usr/local/share/
中的各个包目录中查找,寻找<库名字的大写>Config.cmake
或者 <库名字的小写>-config.cmake
(比如库Opencv
,它会查找/usr/local/share/OpenCV
中的OpenCVConfig.cmake
或opencv-config.cmake
)。**这称为配置模式。
**不管使用哪一种模式,只要找到*.cmake
,*.cmake
里面都会定义下面这些变量:
<NAME>_FOUND
<NAME>_INCLUDE_DIRS or <NAME>_INCLUDES <NAME>_LIBRARIES or <NAME>_LIBRARIES or <NAME>_LIBS <NAME>_DEFINITIONS
注:FIND_PACKAGE(Protobuf)//调用外部自定义cmake模块,简单理解就是外面已经有一个写好cmake脚本(和CmakeLists.txt语法一样),你想在某个CMakeLists.txt中直接调用。
转载于:https://www.cnblogs.com/qiumingcheng/p/8436308.html
find_package()的查找*.cmake的顺序相关推荐
- SDUT-3378_数据结构实验之查找六:顺序查找
数据结构实验之查找六:顺序查找 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在一个给定的无序序列里,查找与给定关键字 ...
- 常用查找算法(顺序、折半、二叉树、哈希、分块)介绍
一.顺序查找 条件:无序或有序队列. 原理:按顺序比较每个元素,直到找到关键字为止. 时间复杂度:O(n) 二.二分查找(折半查找) 条件:有序数组 原理:查找过程从数组的中间元素开始,如果中间元 ...
- 数据结构之查找算法:顺序查找
查找算法:顺序查找 思维导图: 顺序查找的定义: 顺序查找的代码实现: 顺序查找的性能: 思维导图: 顺序查找的定义: 顺序查找的代码实现: typedef struct { //查找表数据结构int ...
- 顺序查找、折半查找及索引顺序查找
静态查找表 只做查询的操作的查找表 动态查找表: 若在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删除已存在的某个数据元素 顺序查找: 从开头一个个比较,直到查找到关键字或者到达末尾 平 ...
- 查找算法--01 顺序查找和二分查找
目 录 1. 顺序查找 1.1 顺序查找介绍 1.2 顺序查找适用范围 1.3 顺序查找代码实现 2.二分查找 2.1 二分查找介绍 2.2 二分查找适用范围 2.3 二分查找代码实现 2. ...
- 查找算法之顺序查找和二分查找
1.顺序查找 基本思想:从数据结构线性表一端开始,顺序扫描,依次将扫描到的关键字值与给定key相比较,若相等则表示查找成功 :若扫描结束仍没有找到关键字等于key值的结点,表示查找失败. 顺序查找适合 ...
- 查找算法1——顺序查找
查找也称为检索,是指从一批记录中找到指定记录的过程.查找算法是程序设计处理非数值问题非常重要的操作.查找算法包括:基于线性表的查找,基于树的查找,哈希表查找. 基于线性表的查找包括顺序查找.折半查找, ...
- java 二分搜索获得大于目标数的第一位_程序员常用查找算法(顺序、二分、插值、分块、斐波那契)...
顺序查找 基本思想 属于线性查找和无序查找,从一端开始顺序扫描,直到找到与目标值value相等的元素. 这是最基本的查找方法,也是时间复杂度最高的查找算法. 在数据过多时,这种方法并不适用. 代码实现 ...
- python二分法查找算法_顺序查找算法和折半(二分法)查找算法,C语言查找算法详解...
查找是指在大量的信息中寻找一个特定的信息.在计算机中,查找是非常重要的一个应用,比如"百度".查找算法的好坏直接影响查找的速度. 常用的查找算法主要有顺序查找和折半(二分法)查找: ...
最新文章
- springboot初学
- 【错误记录】Android Studio 运行报错 ( There is not enough memory to perform the requested operation. )
- 算术运算符举例java_Java的算术运算符简介
- ionic ui框架及creator使用帮助
- HTTP progressive download渐进式传输
- P4092-[HEOI2016/TJOI2016]树【线段树,倍增】
- nodejs mysql 返回json_python向mysql中存储JSON及Nodejs取出
- extjs中元数据_json – 如何配置ExtJS 4 Store(代理和阅读器)来读取元数据
- nRF51822 配对之device_manager_init 调用,以及保证 用户数据存储 的Flash 操作不与device manager 模块冲突...
- Metatdata分析
- 使用synchronized(非this对象)同步代码块解决脏读问题
- linux显卡测试radeon,15款热门显卡对比:Radeon RX 6800系列在Linux 1440p环境下表现出色...
- TensorFlow之Numpy(3)
- 电话机器人图文+源码介绍
- mysql中selec sum返回null的解决方法
- 【altium designer】画原理图
- sqlmap绕过空格过滤方法
- InstallShield 2010集成 net Framework 4的安装包制作
- uniapp实现微信登录或者QQ登录
- L75 Middle 颜色分类 三路快排
热门文章
- linux屏幕分辨率文件,Ubuntu 16.04 LTS设置屏幕分辨率显示Unknown display 解决
- java 嵌套listview_ListView嵌套GridView使用详解
- idea 关闭检查更新_Intellij idea的抑制警告(SuppressWarnings)列表(正在持续更新)
- vue element dialog 对话框
- python `__del__`
- VSCode Editing Code
- VMware日志收集方法总结
- vSphere 7 With K8s系列-1~9 (微信公众号需要收费)
- Maven学习总结(58)—— 常用的 Maven 镜像地址和中央仓库地址汇总
- php的完整代码块,超级实用的9个PHP代码片段