find_package查找.cmake的默认查询路径有如下 PATHCMAKE_PREFIX_PATHCMAKE_FRAMEWORK_PATHCMAKE_APPBUNDLE_PATH echo $PATH可查询PATH包含哪些默认查询路径,以默认路径为根目录,find_package将查询目录下包含的.cmake文件 设置查询路径 让find_package在指定路径找依赖包,有三种方式 # 1. 设置DIRset(Torch_DIR /hom...
<name> 是你在 find_package(<name> REQUIRED) 命令中指定的包名。 <arch> 是系统的架构,例如 x86_64-linux-gnu 或i386-linux-gnu。 (用于伺候 Ubuntu 喜欢把库文件套娃在 /usr/lib/x86_64-linux-gnu 目录下) 举例说明 find_package 搜索路径 例如你是 64 位的 Linux 系统,find_package(Qt5 REQUIRED...
1.2.1 搜索路径 该模式搜索配置和版本文件的路径比module模式复杂的多: 首先在CMAKE_FIND_PACKAGE_REDIRECTS_DIR指定的路径下查找。如果没有找到配置文件,则按照下面的逻辑进行查找: cmake会为包构建可能的前缀,然后再前缀目录下搜索多个可能的目录,cmake指定的安装目录肯定是构建的前缀之一。
Source要搜索的包源的 URL 或文件夹路径。 本地文件夹路径可为绝对路径,也可为相对于当前文件夹的路径。 如果省略,Find-Package则会搜索当前选择的包源。 AllVersions显示每个包的所有可用版本,而不是仅显示最新版本。 第一个要从列表开头返回的包数;默认值为 20。
find_package(MyLibrary REQUIRED) ``` 在这个例子中,`MyLibrary_DIR` 是一个指向库安装路径的变量,而 `find_package` 命令会使用这个路径进行搜索。 总体而言,具体的搜索路径会依赖于库的安装方式以及 CMake 模块文件的设置。如果库有官方的 CMake 模块文件,`find_package` 通常会使用这些文件来定位库的位置。
它主要通过<LibraryName>Config.cmakeor<lower-case-package-name>-config.cmake这两个文件来引入我们需要的库。以我们刚刚安装的glog库为例,在我们安装之后,它在/usr/local/lib/cmake/glog/目录下生成了glog-config.cmake文件,而/usr/local/lib/cmake/<LibraryName>/正是find_package函数的搜索路径之一。(find...
到了CMake时代,CMake给我们提供了find_package() 命令来查找依赖包。理想情况下,一句find_package()命令就可以把一整个依赖包的头文件包含路径、库路径、库名字、版本号等情况都获取到,后续只管用就好了。 二、find_package命令搜包过程 首先我们需要明确一点,CMake本身不提供任何搜索库的便捷方法,所有的搜索库并...
如果find_package命令中指定了具体的版本,也会搜索<lowercasePackageName>-config-version.cmake或<PackageName>ConfigVersion.cmake文件,因此配置模式下通常会提供配置文件和版本文件(注意形式上要保持一致),并且作为包的一部分一起提供给使用者。 该模式下对.cmake文件的搜索路径的顺序比较复杂,具体见本文的...
如果find_package命令中指定了具体的版本,也会搜索<lowercasePackageName>-config-version.cmake或<PackageName>ConfigVersion.cmake文件,因此配置模式下通常会提供配置文件和版本文件(注意形式上要保持一致),并且作为包的一部分一起提供给使用者。 该模式下对.cmake文件的搜索路径的顺序比较复杂,具体见本文的4.1节。
NO_DEFAULT_PATH:可选参数,用于禁用find_package命令的默认路径搜索。默认情况下,find_package命令会在一些预定义的路径中搜索库或框架。如果指定了该参数,find_package命令将只使用CMAKE_PREFIX_PATH和CMAKE_FRAMEWORK_PATH中指定的路径进行搜索。 find_package(MyLib NO_DEFAULT_PATH) 上述代码表示禁用find_package命...