opencv cmake找不到ffmpeg动态包的问题

在手动编译OpenCV时遇到找不到ffmpeg库(如libswscale和libavformat)的问题,原因是pkg-config无法找到源码安装的ffmpeg的*.pc文件,因为它们位于/usr/local/lib/pkgconfig/而不是默认搜索路径。解决方案是设置PKG_CONFIG_PATH环境变量,添加自定义pkgconfig路径。此外,文章还推荐了一篇关于人工智能的教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

               

前些日子手动编译opencv模块的时候,一直提示找不到ffmpeg libs (例如 libswscale , libavformat 等库)。 奇怪,明明我源码安装了 ffmpeg,但为什么还是找不到呢。

通过cmake的 的脚本,阅读了下cmake的一些脚本,终于找到了原因并解决。 opencv的cmake脚本使用了 CHECK_MODULE 宏, 而这个宏又调用了 pkg_check_module 宏。(此宏的定义在 /usr/share/cmake/FindPkgConfig.cmake)。 pkg_check_module中需要通过 pkg-config 命令来查找是否有对应的package 模块。 所以我们也需要安装 pkg-config 软件包。 那么pkg-config 又是如何来知道我们的系统是否安装了某个模块呢? pkg-config是通过 *.pc 的文件来判断。 例如 如果pkg-config找到了 libswscale2.11.pc 则就说明我们有 libswscale 2.11 库。

而 libswscale2.11.pc 里则定义了 header和lib的目录位置。

所以问题来了,我明明通过源码的方式安装了,但是还是提示找不到呢。 原来是 pkg-config 寻找 pc文件目录的问题。

默认pkg-config(笔者的安装版本) 只会寻找 /usr/share/pkgconfig/*.pc 和 /usr/lib/pkgconf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值