cmake find_package 命令

摘要:
1、 find_ package(<)命令将首先查找find<在模块路径中;变量${CMAKE_MODULE_PATH}中的所有目录。然后检查它自己的模块目录/share/cmake-x.y/Modules/($cmake_ROOT的特定值可以通过cmake中的消息命令输出)。

1、 find_package(<Name>)命令首先会在模块路径中寻找 Find<name>.cmake,这是查找库的一个典型方式。

具体查找路径依次为CMake: 
变量${CMAKE_MODULE_PATH}中的所有目录。

如果没有,然后再查看它自己的模块目录 /share/cmake-x.y/Modules/ ($CMAKE_ROOT的具体值可以通过CMake中message命令输出)。

$CMAKE_ROOT = /usr/share/cmake-3.7

/usr/share/cmake-3.7/Modules

这称为模块模式。

2、 如果没找到这样的文件,find_package()会在~/.cmake/packages//usr/local/share/中的各个包目录中查找,寻找<库名字的大写>Config.cmake 或者 <库名字的小写>-config.cmake (比如库Opencv,它会查找/usr/local/share/OpenCV中的OpenCVConfig.cmakeopencv-config.cmake)。

这称为配置模式。

**不管使用哪一种模式,只要找到*.cmake*.cmake里面都会定义下面这些变量:

1。 <NAME>_FOUND
2。 <NAME>_INCLUDE_DIRS or <NAME>_INCLUDES
3。 <NAME>_LIBRARIES or <NAME>_LIBRARIES or <NAME>_LIBS
4。 <NAME>_DEFINITIONS

   两种模式看起来似乎差不多,不过cmake默认采取Module模式,如果Module模式未找到库,才会采取Config模式。如果XXX_DIR路径下找不到XXXConfig.cmake文件,

则会找/usr/local/lib/cmake/XXX/中的XXXConfig.cmake文件。

总之,Config模式是一个备选策略。通常,库安装时会拷贝一份XXXConfig.cmake到系统目录中,因此在没有显式指定搜索路径时也可以顺利找到。

免责声明:文章转载自《cmake find_package 命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇element-ui Progress、Badge、Alert组件源码分析整理笔记(四)微信小程序,前端大梦想(四)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

HTTPUTILS

maven依赖 <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.6</version>...

c语言_头文件_windows.h

概述 Win32程序的开头都可看到: #include <windows.h> WINDOWS.H是一个最重要的头文件,它包含了其他Windows头文件,这些头文件的某些也包含了其他头文件。这些头文件中最重要的和最基本的是: WINDEF.H 基本数据类型定义。 WINNT.H 支持Unicode的类型定义。 WINBASE.H Kernel(...

if的用法

if用法举例:求分数的等级 1 # include <stdio.h> 2 3 int main(void) 4 { 5 float score; //score分数 6 7 printf("请输入您的考试成绩: "); 8 scanf("%f", &score); 9 10 if...

My97日期控件My97DatePicker使用(备忘)

前言: 最近老是找不到资料,痛之又痛的情况下,决定好好将所有涉及到的东西通通做个备忘记录。 参考网址: 1、http://www.my97.net/dp/demo/index.htm 2、http://www.mysuc.com/test/My97DatePicker/#m246 使用备忘—— 日期:2010-10-30 版本:4.7 功能:两个日期文本框...

飞思卡尔XS128系列(三) PIT

      刚报名参加了第五届飞思卡尔智能车竞赛的时候,知道要用飞思卡尔的16位单片机,当时也没在意,就随便买了本这方面的书,记得书名是:《基于HCS12的嵌入式系统设计》,我是因为这本书各模块后面的例子都是以智能车为主,我才买的,本以为买对书了,还洋洋得意,可惜啊,可惜……       悲剧发生在拿到真正拿到芯片的时候,以无比激动的心情把以前写的程序烧进...

UUID生成唯一的16位随机数

* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. package java.util; import java.security.*; /** * A class that represents an immutable universal...