cmake的find_package()简单总结
遇到的问题
find_package(lzb)出现错误如下:
CMake Warning at CMakeLists.txt:37 (find_package):
By not providing "Findlzb.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "lzb", but
CMake did not find one.
Could not find a package configuration file provided by "lzb" with any of
the following names:
lzbConfig.cmake
lzb-config.cmake
Add the installation prefix of "lzb" to CMAKE_PREFIX_PATH or set "lzb_DIR"
to a directory containing one of the above files. If "lzb" provides a
separate development package or SDK, be sure it has been installed.
两种模式
Moudule模式:搜索CMAKE_MODULE_PATH指定路径下的FindXXX.cmake文件。
Config模式:搜索指定路径下的XXXConfig.cmake或者XXX-config.cmake文件。
优先级
cmake默认采用Moudle模式,如果失败,会采用Config模式。
但是如果事前指定XXX_DIR,会优先搜索XXX_DIR下的Config文件;如果XXX_DIR下未找到相应文件,CMake会从Moudule模式重新开始寻找:
If <package>_DIR has been set to a directory not containing a configuration file CMake will ignore it and search from scratch
如果在Moudule模式下也未找到,那么进入Config模式,会在所谓的“其它目录”里面寻找,这里我也没仔细追寻“其它目录”指的啥,具体可以看CMake文档。
关于QUIET和REQUIRED选项
如果指定了QUIET选项,那么表示:就算未找到该包的配置文件,也不会报错。
相反地,如果指定了REQUIRED选项:如果未找到文件,会报错。
If the package configuration file cannot be found CMake will generate an error describing the problem unless the QUIET argument is specified. If REQUIRED is
specified and the package is not found a fatal error is generated and the configure step stops executing.
参考
https://zhuanlan.zhihu.com/p/50829542
https://www.jianshu.com/p/46e9b8a6cb6a
https://cmake.org/cmake/help/v3.10/command/find_package.html
cmake的find_package()简单总结的更多相关文章
- cmake:善用find_package()提高效率暨查找JNI支持
cmake提供了很多实用的cmake-modules,通过find_package()命令调用这些modules,用于写CMakeLists.txt脚本时方便的查找依赖的库或其他编译相关的信息,善用这 ...
- CMake学习(1)---简单程序与库
cmake是linux平台下重要的工具,可以方便的组织makefile.之前一直在windows平台下进行软件开发,在vs2010的IDE里,只要一点run程序就能跑出结果.但是程序的编译并没有那么简 ...
- ubuontu16.04安装Opencv库引发的find_package()错误信息处理及其简单使用
在安装完Opencv库之后,打算测试一下Opencv库是否成功安装.下面是用的例子对应的.cpp代码以及对应的CMakeLists.txt代码: .cpp文件: #include <stdio. ...
- find_package()的查找*.cmake的顺序
1. find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake,这是查找库的一个典型方式.具体查找路径依次为CMake: 变量${C ...
- Cmake find_package 需要指定具体的so
需要使用cmake的find_package将boost库添加到项目中,通过cmake --help-module FindBoost 可以查看cmake引入Boost的帮助信息: 可以看到,Boot ...
- CMake和Linux编程:find_package的使用
1.第一个CMake例子 在 t1 目录建立 main.c 和 CMakeLists.txt(注意文件名大小写): main.c 文件内容: //main.c #include <stdio.h ...
- cmake find_package说明
CMake中find_package功能演示 find_package可以被用来在系统中自动查找配置构建工程所需的程序库.在linux和unix类系统下这个命令尤其有用.CMake自带的模块文件里有大 ...
- cmake学习笔记(五)
在cmake 学习笔记(三) 中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西.但靠这些知识还是不能看懂PySide使 ...
- CMake初步(2)
转自:<你所不知的OSG>第一章:CMake初步(2) http://bbs.osgchina.org/forum.php?mod=viewthread&tid=1229& ...
随机推荐
- Django创建完全独立的APP
我们之前已经完成了项目的结构搭建,但是,在Django当中,我们强调的一个重要概念是app,比如Django自带的admin就是一个成功的app典范,那么我们应该如果整理自己的项目结构,才能让我们的a ...
- Python 实现远程服务器批量执行命令
paramiko 远程控制介绍 Python paramiko是一个相当好用的远程登录模块,采用ssh协议,可以实现linux服务器的ssh远程登录.首先来看一个简单的例子 import parami ...
- HiBench成长笔记——(6) HiBench测试结果分析
Scan Join Aggregation Scan Join Aggregation Scan Join Aggregation Scan Join Aggregation Scan Join Ag ...
- 【Winform】ProgressBar
var progressBar1 = new System.Windows.Forms.ProgressBar(); ; progressBar1.Maximum = ; progressBar1.V ...
- 解题报告:luogu P5020(NOIP 2018 D1T2)
题目链接:P5020 货币系统 \(NOIP\) 的题挺精华啊. 开始感觉自己有隐约的思路,但感觉太暴力,连数据范围都没看,就去看题解了(不会啊). 听说是\(dp\)又是一惊,直接弃疗. 其实只是个 ...
- grep -o -E
sed 命令可以很好的进行行匹配,但从某一行中精确匹配某些内容,则使用 grep 命令并辅以 -o 和 -E 选项可达到此目的.其中 -o 表示“only-matching”,即“仅匹配”之意.光用它 ...
- Spring组件扫描--源码跟踪
看这篇文章之前可以先了解之前的跟踪流程,https://www.jianshu.com/p/4934233f0ead 代码过宽,可以shift + 鼠标滚轮 左右滑动查看 这篇文章主要跟踪spring ...
- Pdo 绑定参数方法 通用更新语句
public static function upShelf($table,$arr,$where) { //将传入的数组进行key vlaue 分离 并将key值以问号方式绑定参数 ...
- 024、MySQL字符串替换函数,文本替换函数
#文本替换 ,,'); #520ABCDEFG ,,'); #520BCDEFG ,,'); #520CDEFG ,,'); #A520BCDEFG ,,'); #A520CDEFG ,,'); #A ...
- 012-PHP创建一个多维数组
<?php $Cities = array( //二维数组array() "华北地区"=>array( "北京市", "天津市" ...