find_package的两种搜索模式都会按照一定规则从路径下搜索.cmake后缀的文件,两种模式下的.cmake文件作用都是为了给find_package命令的调用方返回有关包的信息(头文件路径、库文件路径、编译连接选项、版本信息等等),对于两种模式的进一步说明可以参看Cmake中find_package命令的搜索模式之模块模式(Module mode)和Cmake中fi...
默认情况下,find_package命令会首先尝试在MODULE_PATH中查找相应的find.cmake文件。如果指定了该参数,find_package命令将只使用CMake内置的文件搜索机制来查找库或框架。 find_package(MyLib NO_MODULE) 上述代码表示禁用find_package命令的模块模式,只使用CMake内置的文件搜索机制来查找MyLib库。 NO_DEFAULT_PATH:可...
find_package(GFlags REQUIRED) 这个时候可以通过PATHS指定某个目录去寻找,避免多个版本链接出错。 find_package(GFlags PATHS /workspace/xxx/gflags-2.2.2/out/lib/cmake/gflags REQUIRED NO_DEFAULT_PATH) 如果安装的第三方库使用源码编译安装,并且作者没有编写.cmake文件供find_package使用。这时可以使用file GLOB去...
以我们刚刚安装的glog库为例,在我们安装之后,它在/usr/local/lib/cmake/glog/目录下生成了glog-config.cmake文件,而/usr/local/lib/cmake/<LibraryName>/正是find_package函数的搜索路径之一。(find_package的搜索路径是一系列的集合,而且在linux,windows,mac上都会有所区别,需要的可以参考官方文档find_package) ...
find_package命令:找到(通常对于项目来说是外部的东西)并加载包特定的细节。 一、搜寻模式 搜寻模式是cmake搜索所需要包的方法,可分为模块模式(Module mode)和(配置模式)Config Mode。 1.1 模块模式(Module mode) 在这种模式下,CMake将会搜寻一个名字叫做Find<PackageName>.cmake的文件。
find_package(<Package> [version]) CMAKE_PREFIX_PATH CMAKE_PREFIX_PATH是一个分号分割的路径列表,用来指明可执行文件or库安装路径前缀。 以供find_package、find_program、find_library、find_file、find_path命令搜索使用,方便搜索可执行文件、头文件、库文件及相关配置文件。 curl库例子 1、安装curl(系统预定义...
一、find_package 命令基本介绍 在实际开发工程中,经常不可避免会使用到第三方开源库,这些开源库可能是通过apt-get install 命令自动安装到系统目录中的;也有可能是由我们自己下载库的源码,然后通过编译安装到指令目录下。 不管哪种方式安装的库文件,如果我们需要在项目中使用这些库,首先面临的第一个问题,就是怎么找...
CMake是一个跨平台的开源构建工具,用于管理软件构建过程。它使用CMake语言来描述构建过程,并生成适用于不同平台和编译器的构建脚本。 在CMake中,find_package是一个用于查找和加载...
一般来说,Find<PackageName>.cmake文件不是随包本身一起提供的,更多的是外部针对已有包的重新包装,例如操作系统、Cmake程序、甚至是调用find_package命令的工程针对已有的包提供针对该包的.cmake文件。 1.2 配置模式(Config mode) 该模式下,CMake会搜索<lowercasePackageName>-config.cmake文件或<Pa...
find_package是CMake中用于查找并加载外部库的指令。它可以根据指定的参数在系统或用户指定的路径中查找库文件,并生成相应的变量供后续使用。 2 find_package基本语法 find_package(<PackageName> [version] [EXACT] [QUIET] [MODULE][REQUIRED] [[COMPONENTS] [components...]][OPTIONAL_COMPONENTS components...]...