【cmake】pkg_check_modules 使用详解

pkg_check_modules 主要通过 .pc 文件引入整个库,该命令会解析指定的 .pc 文件,并将所需的编译和链接信息提取到 CMake 变量中,以便后续使用。


目录

1、pkg_check_modules 的检索目录

2、pkg_check_modules 语法格式

3、应用:pkg_check_modules 引入 libavfilter.pc 

3.1 使用 IMPORTED_TARGETS

3.2 不使用 IMPORTED_TARGETS


1、pkg_check_modules 的检索目录

一般情况下,pkg_check_modules 会在默认路径(标准路径)下寻找对应的 pc 文件,如 /usr/lib/pkgconfig、/usr/local/lib/pkgconfig,如果 .pc 文件位于非标准位置,可以通过设置 PKG_CONFIG_PATH环境变量来告诉 pkg-config 查找 .pc 文件的路径。

# ffmpeg 的pc文件位置:${PROJECT_SOURCE_DIR}/3rdparty/ffmpeg/lib/pkgconfig
# 系统环境变量:PKG_CONFIG_PATH
# 格式: set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:<pc文件位置>")
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${PROJECT_SOURCE_DIR}/3rdparty/ffmpeg/lib/pkgconfig")

2、pkg_check_modules 语法格式

pkg_check_modules使用方法和 find_package 类似,基本语法如下:

pkg_check_modules(<PREFIX> REQUIRED|QUIET|OPTIONAL [IMPORTED_TARGETS] <modules>...)

①  

CMake中出现“Unknown CMake command "pkg_check_modules"”错误,通常是因为CMake没有找到`FindPkgConfig.cmake`模块,该模块提供了`pkg_check_modules`命令。以下是解决此问题的方法: #### 安装`pkg-config`工具 `pkg-config`是一个用于帮助软件配置脚本确定库的版本和编译选项的工具,`FindPkgConfig.cmake`依赖于它。在不同的操作系统上安装方法不同: - **Ubuntu/Debian**: ```bash sudo apt-get install pkg-config ``` - **CentOS/RHEL**: ```bash sudo yum install pkgconfig ``` - **macOS(使用Homebrew)**: ```bash brew install pkg-config ``` #### 确保CMake能找到`FindPkgConfig.cmake`模块 在CMakeLists.txt文件中添加以下语句来包含`FindPkgConfig.cmake`模块: ```cmake find_package(PkgConfig REQUIRED) ``` 完整示例如下: ```cmake cmake_minimum_required(VERSION 3.10) project(YourProjectName) # 查找PkgConfig模块 find_package(PkgConfig REQUIRED) # 使用pkg_check_modules pkg_check_modules(GST_VIDEO REQUIRED gstreamer-video-1.0) # 后续的CMake配置 # ... ``` #### 检查CMake模块路径 有时候,CMake可能无法在默认路径中找到`FindPkgConfig.cmake`模块。可以通过设置`CMAKE_MODULE_PATH`来指定额外的模块搜索路径: ```cmake set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/path/to/your/cmake/modules") find_package(PkgConfig REQUIRED) ``` #### 检查CMake版本 确保使用的是支持`FindPkgConfig.cmake`模块的CMake版本。建议使用较新的CMake版本,以避免兼容性问题。可以通过以下命令检查CMake版本: ```bash cmake --version ``` 如果版本较旧,可以从[CMake官方网站](https://cmake.org/download/)下载并安装最新版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值