库文件路径、编译连接选项、版本信息等等),对于两种模式的进一步说明可以参看Cmake中find_package命令的搜索模式之模块模式(Module mode)和Cmake中find_package命令的搜索模式之配置模式(Config mode).
请注意,如果系统目录(一般是 /usr/local/lib/cmake/ )里有一个Find<package>.cmake文件,但你却不想使用默认的,想自己定义一个Find<package>.cmake,即想让它绕过默认库,则你可以指定 CMAKE_MODULE_PATH ,它的优先级比默认路径要高。 对Config模式,<package>Config.cmake一般放在外部目录下,也就是说这个文件...
find_package(OpenCV REQUIRED PATHS /usr/local/share/OpenCV NO_DEFAULT_PATH) c. pkg_check_module 编译安装第三方库时,会根据安装位置生成.pc文件,里面记录了头文件、库文件等的地址信息,将.pc文件路径加入pkg-config的环境变量PKG_CONFIG_PATH作为搜索路径。比如linux默认搜索路径/lib/pkgconfig。 pkg_check_m...
cmake find_package 自定义模块(CONFIG模式) 上一篇我们实现了MODULE模式下的自定义模块,并在CMakeLists.txt中使用find_package成功调用。 现在我们在看一下CONFIG模式下的自定义模块,并调用。 代码地址:https://github.com/huang123aini/CMake-Note/tree/master/find_package/find_package_custom_config 初始目录结...
首先,find_package 有两种模式,一是Module模式,一是Config模式。 cmake本身不提供任何搜索库的便捷方法,所有搜索库并给变量赋值的操作必须由cmake代码(自己写的)完成,比如下面将要提到的FindXXX.cmake和XXXConfig.cmake。只不过,库的作者通常会提供这两个文件,以方便使用者调用。
find_package命令:找到(通常对于项目来说是外部的东西)并加载包特定的细节。 一、搜寻模式 搜寻模式是cmake搜索所需要包的方法,可分为模块模式(Module mode)和(配置模式)Config Mode。 1.1 模块模式(Module mode) 在这种模式下,CMake将会搜寻一个名字叫做Find<PackageName>.cmake的文件。
与find_libaray直接在指定搜索目录下搜索库不同,find_package命令可以获取更多的信息,那么它的搜索方式也是与find_libaray不一样,它有两种不同的搜索方式,因此在介绍这个命令的细节之前,先简单介绍一下find_package命令的两种搜索模式:模块模式(Module mode)和配置模式(Config mode)。
利用cmake的find_package()函数进行CONFIG模式调用时,其会结合安装生成的cmake文件,进行模块的查找。该操作的详细过程,可以参考文章:无我:CMake install 参考地址: CMake part 3: create a config file to be found by find_package()总之,在自定义模块开发中,通过灵活应用CMake的MODULE和C...
1)先尝试使用pkg-config来找到真正的库,pkg-config是系统提供的命令用于找系统中是否存在相关的库(参考pkg-config用法详解),在CMake中使用如下两条,CMake会从<PackageName>.pc文件中读取对应的变量。 find_package(PkgConfig) pkg_check_modules(PC_mymath QUIET mymath) ...
该模式搜索配置和版本文件的路径比module模式复杂的多:首先在CMAKE_FIND_PACKAGE_REDIRECTS_DIR指定的路径...