find_package查找.cmake的默认查询路径有如下 PATHCMAKE_PREFIX_PATHCMAKE_FRAMEWORK_PATHCMAKE_APPBUNDLE_PATH echo $PATH可查询PATH包含哪些默认查询路径,以默认路径为根目录,find_package将查询目录下包含的.cmake文件 设置查询路径 让find_package在指定路径找依赖包,有三种方式 # 1. 设置DIRset(Torch_DIR /hom...
<prefix>/(lib/<arch>|lib|share)/<name>*/(cmake|CMake)/ (U) cmake找到这些目录后,会开始依次找<package>Config.cmake或Find<package>.cmake文件。找到后即可执行该文件并生成相关链接信息。 现在回过头来看查找路径的根目录。我认为最重要的一个是PATH。由于/usr/bin/在PATH中,cmake会自动去/usr/(lib...
find_package 命令用法举例 find_package 说是找“包(package)”,到底是在找什么? 寻找包配置文件 包配置文件包含什么? 包配置文件怎么来的? Windows 系统下的搜索路径 Unix 类系统下的搜索路径 举例说明 find_package 搜索路径 安装在非标准路径的库如何处理? 举例,Windows 系统,Qt5 举例,Linux 系统,Qt5 三种...
此外它还决定两种搜索模下的.cmake文件名称:例如模块模式下的名称为Find<PackageName>.cmake,而配置模式下为<lowercasePackageName>-config.cmake/<lowercasePackageName>-config-version.cmake。 MODULE:该选项指定find_package命令只使用模块模式搜索方式查找。未指定该选项时,find_package会优先使用模块模式搜索,仍未找...
在该模式下,Cmake会搜索一个名为Find<PackageName>.cmake的文件,其中<PackageName>为待搜索包的名称。 搜索路径的顺序依次是: 从变量CMAKE_MODULE_PATH指定的路径中进行查找 从Cmake安装路径中查找。Cmake会在其安装路径下提供很多.cmake文件,例如/XXX/cmake/Modules/目录下(不同的系统安装目录可能不一...
NO_DEFAULT_PATH:可选参数,用于禁用find_package命令的默认路径搜索。默认情况下,find_package命令会在一些预定义的路径中搜索库或框架。如果指定了该参数,find_package命令将只使用CMAKE_PREFIX_PATH和CMAKE_FRAMEWORK_PATH中指定的路径进行搜索。 find_package(MyLib NO_DEFAULT_PATH) 上述代码表示禁用find_package命...
如果find_package命令中指定了具体的版本,也会搜索<lowercasePackageName>-config-version.cmake或<PackageName>ConfigVersion.cmake文件,因此配置模式下通常会提供配置文件和版本文件(注意形式上要保持一致),并且作为包的一部分一起提供给使用者。 该模式下对.cmake文件的搜索路径的顺序比较复杂,具体见本文的...
前面有介绍过find_package的两种搜索模式之一模块模式(请参考Cmake命令之find_package介绍和模块模式),本文将介绍另外一种模式:配置模式。 一、配置模式下的.cmake文件 该模式下,CMake会搜索<lowercasePackageName>-config.cmake文件或<PackageName>Config.cmake文件。如果find_package命令中指定了具体的...
到了CMake时代,CMake给我们提供了find_package() 命令来查找依赖包。理想情况下,一句find_package()命令就可以把一整个依赖包的头文件包含路径、库路径、库名字、版本号等情况都获取到,后续只管用就好了。 二、find_package命令搜包过程 首先我们需要明确一点,CMake本身不提供任何搜索库的便捷方法,所有的搜索库并...