find_package(<package>[version][EXACT][COMPONENTScomponent1[component2...]][OPTIONAL_COMPONENTScomponent1[component2...]][NO_POLICY_SCOPE][REQUIRED]) <package>:要查找的软件包的名称。 version:指定软件包的版本要求。 EXACT:如果指定,要求找到的软件包版本必须完全匹配指定的版本。 COMPONENTS:指定软件包中...
Find mymath: /XXX/mymath; /XXX/mymath/libmymath.a; OPTIONAL_COMPONENTS:与COMPONENTS的区别是,不强制要求这些组件必须存在。不影响CMake的执行。 2.2 完整命令 find_package([version] [EXACT] [QUIET] [REQUIRED] [[COMPONENTS] [components...]] [OPTIONAL_COMPONENTS components...] ...
find_package(OpenCV REQUIRED OPTIONAL_COMPONENTS core videoio) 查找名为 OpenCV 的包,找不到就报错,可具有 OpenCV::core 和OpenCV::videoio 这两个组件,没有这两组件不会报错,通过 ${OpenCV_core_FOUND} 查询是否找到 core 组件。 find_package 说是找“包(package)”,到底是在找什么? 寻找包配置文件 ...
Find mymath: /XXX/mymath; /XXX/mymath/libmymath.a; OPTIONAL_COMPONENTS:与COMPONENTS的区别是,不强制要求这些组件必须存在。不影响CMake的执行。 2.2 完整命令 find_package(<PackageName> [version] [EXACT] [QUIET] [REQUIRED] [[COMPONENTS] [components...]] [OPTIONAL_COMPONENTS compon...
[OPTIONAL_COMPONENTS components...] [NO_POLICY_SCOPE]) 查找并载入一个外部包的设置。查找是否成功可以通过<PackageName>_FOUND变量的值得到。成功查找到包后,我们就可以导入包中的目标。使用QUIET选项可以不显示查询过程中产生的信息,比如如果没有使用REQUIRED选项,即使包没有被找到,也不会显示任何信息。使用REQUIRE...
OPTIONAL_COMPONENTS和components:可选的模块,找不到也不会让cmake停止执行。 Module模式查找顺序 Module模式下是要查找到名为Find<PackageName>.cmake的文件。 先在CMAKE_MODULE_PATH变量对应的路径中查找。如果路径为空,或者路径中查找失败,则在cmake module directory(cmake安装时的Modules目录,比如/usr/local/shar...
OPTIONAL_COMPONENTS components…:可选的依赖组件,即使找不到也不会影响cmake继续执行; NO_POLICY_SCOPE:cmake policy,参见:cmake_policy 注:上述参数中,除了PackageName必需,其他都是可选参数。 MODULE模式的查找路径 在MODULE模式下,cmake通过查找名为Find<PackageName>.cmake的文件来查找包。
[OPTIONAL_COMPONENTS components...] [REGISTRY_VIEW (64|32|64_32|32_64|HOST|TARGET|BOTH)] [GLOBAL] [NO_POLICY_SCOPE] [BYPASS_PROVIDER]) 1. 2. 3. 4. 5. 6. 7. PackageName:需要查找的包名 version:可指定查找包的版本要求 versionMin...versionMax:如1.1.1.1…1.2.2.1(包括1.2.2.1) ...
OPTIONAL:设置为TRUE表示将从属目标标记为可选,即使构建失败也不会中断主目标的构建,默认为FALSE。 示例代码: 通过设置上述属性,可以根据需要灵活地控制从属目标的构建失败后是否继续构建主目标。 对于CMake中的从属目标失败后继续的应用场景,可以考虑以下情况: ...
find_package(<package>[version][EXACT][QUIET][MODULE][REQUIRED][[COMPONENTS][components...]][OPTIONAL_COMPONENTScomponents...][NO_POLICY_SCOPE]) QUITE 参数指代,当查找出错时,屏蔽 message() 的输出。 REQUIRED 参数指代,当找不到 package 时,终止过程。