1. find_package常用指令形式
该指令是用来搜索包,并将包头文件、库文件、包目录记录下来;
find_package常用形式为
find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE]
[REQUIRED] [[COMPONENTS] [components...]]
[OPTIONAL_COMPONENTS components...]
[NO_POLICY_SCOPE])
其中
- < PackageName > 包名,必填参数。注意大小写。
- [version] 指定版本,可选参数。添加该参数后会检查找到的包的版本是否和version兼容。
- [EXACT] 版本号必须匹配,可选参数。必须完全匹配的版本而不是兼容版本就可以。
- [QUIET] 没找到包也没关系;可选参数。
- [REQUIRED] ,没找到包会停止CMake;可选参数,会覆盖掉 [QUIET] 参数,输出查找失败提示语。
- [MODULE]:可选字段。CMake有两个包查找模式,指定查找模式为MODULE模式,只在MODULE查找。
- [COMPONENTS],[components]:可选字段,表示查找的包中必须要找到的组件(components),如果有任何一个找不到,CMake停止执行。
2. find_package两种包查找模式
在第一章了解了find_package语法后,下面需要了解一下find_package的内部实现机制,了解find_packge是如何查找包的;
主要有两种包查找模式:MODUEL模式