如何在Ubuntu 20.04上编译安装OpenCV 4.4并启用pkg-config支持
如何在Ubuntu 20.04上编译安装OpenCV 4.4并启用pkg-config支持
在 Ubuntu 20.04 上从源码编译安装 OpenCV 4.4 时遇到没有 pkg-config
文件的问题是一个常见的配置问题。这种情况通常发生因为 OpenCV 的默认编译配置没有启用生成 pkg-config
文件。以下是详细的问题分析和解决方案,以及具体的实例解释。
问题分析
-
默认配置不生成
pkg-config
文件:
OpenCV 4 默认的 CMake 配置不生成pkg-config
(.pc
)文件。这意味着即使你成功编译并安装了 OpenCV,系统的pkg-config
工具也无法检测到它,因此无法使用pkg-config
来简化编译和链接过程。 -
需要显式启用:
要生成pkg-config
文件,必须在运行 CMake 配置 OpenCV 时显式启用这一功能。
具体解决方案
解决方案一:启用 pkg-config
文件生成
在编译 OpenCV 时,通过添加特定的 CMake 选项来启用 pkg-config
文件的生成。
操作步骤:
-
清理旧的构建目录(如果之前尝试编译过):
cd /path/to/opencv-4.4/build rm -rf *
-
配置 CMake:
在 OpenCV 的构建目录中运行 CMake,启用pkg-config
的生成:cmake -D CMAKE_BUILD_TYPE=Release \ -D OPENCV_GENERATE_PKGCONFIG=YES \ -D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.4 ..
这里的选项解释:
-D CMAKE_BUILD_TYPE=Release
: 设置编译类型为 Release,优化性能。-D OPENCV_GENERATE_PKGCONFIG=YES
: 启用生成opencv4.pc
文件。-D CMAKE_INSTALL_PREFIX=/usr/local/opencv-4.4
: 指定安装路径,方便管理。
-
编译和安装:
make -j$(nproc) # 使用所有可用核心加速编译过程 sudo make install # 安装 OpenCV
-
验证
pkg-config
:
确认pkg-config
能够正确识别 OpenCV:pkg-config --modversion opencv4 # 应返回安装的 OpenCV 版本号
解决方案二:安装预编译的 OpenCV 开发包
如果你不想自己编译 OpenCV,可以直接安装 Ubuntu 的预编译包,这些包已配置好 pkg-config
。
操作步骤:
sudo apt update
sudo apt install libopencv-dev
这将安装 OpenCV 的开发库和头文件,同时设置好 pkg-config
。
实例解释
假设你正在 Ubuntu 20.04 上从源码安装 OpenCV 4.4,并希望使用 pkg-config
简化后续的编译任务。按照解决方案一,你需要先下载 OpenCV 的源码,然后进行如上配置和编译。通过这种方式,你不仅控制了安装的具体参数(如版本控制、安装路径等),还能确保系统中的开发环境可以通过 pkg-config
快速配置项目。
这种配置尤其有助于那些需要在项目中集成 OpenCV 的开发者,因为它允许通过简单的 pkg-config
命令轻松获取编译和链接标志,从而避免了手动配置这些复杂参数的麻烦。