find_package将先到 module 路径下查找Find<name>.cmake。首先它搜索${CMAKE_MODULE_PATH}中的所有路径,然后搜索/usr/share/cmake-3.5/Modules.比如find_package(Boost)搜索的文件是/usr/share/cmake-3.5/Modules/FindBoost.cmake 如果在 CMakeLists.txt 中没有下面的指令: 1 set(CMAKE_MODULE_PATH"Findxxx...
pkg_check_modules是 CMake 自己的pkg-config模块的一个用来简化的封装:你不用再检查 CMake 的版本,加载合适的模块,检查是否被加载,等等,参数和传给 find_package 的一样:先是待返回变量的前缀,然后是包名(pkg-config 的)。这样就定义了<prefix>_INCLUDE_DIRS和其他的这类变量,后续的用法就与find_package一致。
FindPkgConfig CMake 的pkg-config模块 <PREFIX> 自定义的前缀 pkg_check_modules(<PREFIX> [REQUIRED] <MODULE> [<MODULE>]*) 检测所有给出的modules 设置'REQUIRED'参数后 如果MODULE没有找到会发生错误 例如: 在CMakeList.txt 文件中: pkg_check_modules(BFL REQUIRED orocos-bfl) include_directories(${BFL...
和cmake相比,pkg-config是另一个独立的历史更悠久的library信息描述体系,cmake的FindPkgConfig Module的作用是调用pkg-config查找pkg-config格式的库信息. cmake 3.6版本以后用于查找pkg-config格式安装包的pkg_check_modules宏增加了一个IMPORTED_TARGET参数。 参见https://cmake.org/cmake/help/v3.6/module/FindPkg...
首先利用 CMake 的 find_package 机制找到本地的 pkg-config,如果成功找到,则有两种办法查找外部库: pkg_check_modules:根据列表中给的外部库,在当前环境下都试着去找到 pkg_search_module:找到列表中第一个成功找到的外部库 可以根据实际需求使用,大部分情况下使用 pkg_check_modules,第一个参数为匹配前缀,...
find_package(PkgConfig) 然后通过PkgConfig模块找到你想要找到的第三方库,这里我找一下SDL2: pkg_check_modules(REQUIRED SDL2 SDL2_image SDL2_ttf SDL2_mixer) pkg_search_module(SDL2 REQUIRED sdl2) pkg_search_module(SDL2_image REQUIRED sdl2_image) ...
include(FindPkgConfig) pkg_check_modules( TEST REQUIRED libtest ) ...and running it with: cmake -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=TRUE -DCMAKE_PREFIX_PATH=/home/user/test . ...results in the error: No package 'libtest' found I also tried running against strace -v -f,...
find_package(PkgConfig) pkg_check_modules(PC_MPG123 QUIET libmpg123) find_path(MPG123_INCLUDE_DIR mpg123.h HINTS ${PC_MPG123_INCLUDEDIR} ${PC_MPG123_INCLUDE_DIRS}) find_library(MPG123_LIBRARY NAMES mpg123 mpg123-0 HINTS ${PC_MPG123_LIBDIR} ${PC_MPG123_LIBRARY_DIRS}) set(MPG123_...
See the discussion in: #30803 (comment). I assume one thing we could do, is try find_package(ZeroMQ) first, and fallback to pkg_check_modules(libzmq), and just maintain this (pretty much) forever. That might be better than somewhat vauge...
https://tatamobile.net/categories/c/inside-cmake-1-findpkgconfig/ 缘起 在某些FindXXX.cmake模块中经常出现下面这两条命令: find_package(PkgConfig QUIET) pkg_check_modules(PC_GLIB2 QUIET glib-2.0) 主要在一些第三方库没有提供CMake模块,只提供了pkg-config的配置,需要开发者自己开发CMake模块。 本文...