遇到的问题

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()简单总结的更多相关文章

  1. cmake:善用find_package()提高效率暨查找JNI支持

    cmake提供了很多实用的cmake-modules,通过find_package()命令调用这些modules,用于写CMakeLists.txt脚本时方便的查找依赖的库或其他编译相关的信息,善用这 ...

  2. CMake学习(1)---简单程序与库

    cmake是linux平台下重要的工具,可以方便的组织makefile.之前一直在windows平台下进行软件开发,在vs2010的IDE里,只要一点run程序就能跑出结果.但是程序的编译并没有那么简 ...

  3. ubuontu16.04安装Opencv库引发的find_package()错误信息处理及其简单使用

    在安装完Opencv库之后,打算测试一下Opencv库是否成功安装.下面是用的例子对应的.cpp代码以及对应的CMakeLists.txt代码: .cpp文件: #include <stdio. ...

  4. find_package()的查找*.cmake的顺序

    1. find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake,这是查找库的一个典型方式.具体查找路径依次为CMake: 变量${C ...

  5. Cmake find_package 需要指定具体的so

    需要使用cmake的find_package将boost库添加到项目中,通过cmake --help-module FindBoost 可以查看cmake引入Boost的帮助信息: 可以看到,Boot ...

  6. CMake和Linux编程:find_package的使用

    1.第一个CMake例子 在 t1 目录建立 main.c 和 CMakeLists.txt(注意文件名大小写): main.c 文件内容: //main.c #include <stdio.h ...

  7. cmake find_package说明

    CMake中find_package功能演示 find_package可以被用来在系统中自动查找配置构建工程所需的程序库.在linux和unix类系统下这个命令尤其有用.CMake自带的模块文件里有大 ...

  8. cmake学习笔记(五)

    在cmake 学习笔记(三) 中简单学习了 find_package 的 model 模式,在cmake 学习笔记(四)中了解一个CMakeCache相关的东西.但靠这些知识还是不能看懂PySide使 ...

  9. CMake初步(2)

    转自:<你所不知的OSG>第一章:CMake初步(2) http://bbs.osgchina.org/forum.php?mod=viewthread&tid=1229& ...

随机推荐

  1. 十一 JSP&EL&JSTL

    1 什么是JSP? 从用户角度看待,是一个网页从程序员角度,其实是一个Java类,他继承了Servlet,所以可以直接说JSP就是一个Servlet 为什么会有JSP?html多数情况下用来显示静态内 ...

  2. 获取QQ群中的所有群友QQ

    package com.jm.mail.tools; import java.io.BufferedReader; import java.io.IOException; import java.io ...

  3. Ubuntu操作系统编译安装zabbix报错汇总

    Ubuntu操作系统编译安装zabbix报错汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.报错提示:"configure: error: MySQL libra ...

  4. OpenJ_Bailian - 1088 滑雪(记忆化搜索)

    题意:给定一个二维数组,一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小,输出可以滑行的最长区域的长度. 分析:对于每一个点,进行记忆化搜索.若某点可以向四周某几个点滑行,记忆化搜索求出 ...

  5. 页面的html调试

    点击页面按下键盘的F12,或者鼠标右键选择检查(N) 会弹出一个窗口,这个窗口就是调试窗口 如上图所示,第一个图标是标签元素选择器,点击使用后,在页面上移动,会在Elements的区域找到你鼠标选中的 ...

  6. HashMap之Hash碰撞源码解析

    转自:https://blog.csdn.net/luo_da/article/details/77507315 https://www.cnblogs.com/tongxuping/p/827619 ...

  7. 064、Java中递归调用

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...

  8. 011.Delphi插件之QPlugins,延时加载服务

    这个DEMO是是把DLL插件的相关信息做成了一个配置文件,主程序加载这个配置文件,从而起到延时加载的作用 主程序代码如下 unit Frm_Main; interface uses Winapi.Wi ...

  9. leetcode817 Linked List Components

    """ We are given head, the head node of a linked list containing unique integer value ...

  10. POJ - 3264 Balanced Lineup(线段树或RMQ)

    题意:求区间最大值-最小值. 分析: 1.线段树 #include<cstdio> #include<cstring> #include<cstdlib> #inc ...