默认情况下,find_package命令会在一些预定义的路径中搜索库或框架。如果指定了该参数,find_package命令将只使用CMAKE_PREFIX_PATH和CMAKE_FRAMEWORK_PATH中指定的路径进行搜索。 find_package(MyLib NO_DEFAULT_PATH) 上述代码表示禁用find_package命令的默认路径搜索,只使用CMAKE_PREFIX_PATH和CMAKE_FRAMEWORK_PATH中...
find_package(catkin REQUIRED COMPONENTS ${PACKAGE_DEPENDENCIES}) 使用Find_Package寻找模块时,每一个模块都会产生如下变量: _FOUND _INCLUDE_DIR _LIBRARY or _LIBRARIES a. Module 模式 find_package将先到module路径下查找Find<name>.cmake。首先它搜索${CMAKE_MODULE_PATH}中的所有路径,然后搜索/usr/share/c...
这个约束会依赖包的.cmake来实现,通过find_package命令传入的COMPONENTS可以通过<PackName>_FIND_COMPONENTS这个变量来获得。举个简单的例子: # mymathConfig.cmake,假定它位于./mymath/mymath目录下 # 作用就是校验COMPONENTS是否是test,只有当COMPONENTS为空或者为test时,包mymath才会被找到 message(${mymath_FIND_...
find_package命令高级工作模式(Full Signature),只有在find_package中指定CONFIG,NO_MODULE等关键字,或者MODULE模式查找失败后才会进入到CONFIG模式。 find_package的工作模式 MODULE模式 find_package(<PackageName>[version][EXACT][QUIET][MODULE][REQUIRED][[COMPONENTS][components...]][OPTIONAL_COMPONENTScomponents.....
用户可以设置CMAKE_FIND_PACKAGE_PREFER_CONFIG变量为TRUE,让CMake优先使用Config模式。 详细的模块查找过程(翻译的官方文档) find_packge完成的参数列表 find_package(<PackageName> [version] [EXACT] [QUIET][REQUIRED] [[COMPONENTS] [components...]][OPTIONAL_COMPONENTS components...][CONFIG|NO_MODULE][NO...
find_package命令有两种格式,基本命令格式和完整命令格式。 2.1 基本命令 find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE] [REQUIRED] [[COMPONENTS] [components...]] [OPTIONAL_COMPONENTS components...] [NO_POLICY_SCOPE]) ...
find_package用于加载第三方库,可以将需要的部分指定为组件,例如使用包 nodelet: find_package(catkin REQUIRED COMPONENTS nodelet)。例如,使用 Boost 时加载线程组件: 1 find_package(Boost REQUIRED COMPONENTS thread) 使用Find_Package寻找模块时,每一个模块都会产生如下变量: ...
find_package的作用是在系统中查找指定的库,并将其包含路径和链接库信息传递给CMake。它通常用于查找第三方库,如Boost、OpenCV等。 find_package的使用方法如下: 代码语言:txt 复制 find_package(package_name [version] [EXACT] [QUIET] [MODULE] [REQUIRED] [COMPONENTS components...]) ...
OPTIONAL_COMPONENTS components…:可选的依赖组件,即使找不到也不会影响cmake继续执行; NO_POLICY_SCOPE:cmake policy,参见:cmake_policy 注:上述参数中,除了PackageName必需,其他都是可选参数。 MODULE模式的查找路径 在MODULE模式下,cmake通过查找名为Find<PackageName>.cmake的文件来查找包。
[cmake] --- find_package 1find_package的作用 find_package是CMake中用于查找并加载外部库的指令。它可以根据指定的参数在系统或用户指定的路径中查找库文件,并生成相应的变量供后续使用。 2 find_package基本语法 find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE][REQUIRED] [[COMPONENTS] [...