不少人在 Ubuntu 上装 OpenCV 时,卡住的往往不是编译本身,而是版本对应、依赖缺失和安装后系统找不到库文件这几个环节。下面按“下载准备、依赖安装、源码编译、环境配置、结果验证”的顺序重新梳理一遍,保留原始命令和关键路径,方便你直接照着排查和执行。
先准备源码包:opencv 与 opencv_contrib 要配套
安装前需要先下载两份源码:
opencvopencv_contrib
这里最关键的一点是:opencv_contrib 的版本必须和前面下载的 opencv 版本一致。如果版本不对应,后续在编译阶段就可能出现模块不兼容或配置失败。
两个都下载完成后,把 opencv_contrib 放到解压后的 opencv 文件夹里面,后面的构建过程再继续进行。
先把依赖装全,避免编译阶段反复报错
源码安装 OpenCV 之前,先把基础构建工具和常见图像处理依赖安装好。
基础构建工具
sudo apt-get install build-essential
这一步主要是安装编译 C/C++ 项目需要的基础工具链。
CMake 与常用媒体相关依赖
sudo apt-get install cmake git libgtk2.0-dev pkg-config liba vcodec-dev liba vformat-dev libswscale-dev
这组依赖主要覆盖构建工具、图形界面支持以及音视频处理相关库。原文中的包名保持不变,执行前建议你自行确认系统源中对应软件包名称是否可用。
Python 与图像开发库
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
这个命令会安装一系列开发库,包括 Python 开发库、NumPy,以及 JPEG、PNG、TIFF、Jasper 和 DC1394 相机驱动相关支持库。对很多图像处理和计算机视觉项目来说,这些库都是后续编译和运行时的常见前提。
开始编译安装:按 build 目录完成 CMake 与 make
依赖准备好之后,就可以进入源码目录开始构建。

1. 在 opencv 目录下新建 build 文件夹
cd opencv
mkdir build
2. 进入 build 目录执行 cmake
cd build
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON ..
这里有三个关键参数:
CMAKE_BUILD_TYPE=Release:以 Release 模式构建CMAKE_INSTALL_PREFIX=/usr/local:安装路径指定为/usr/localOPENCV_GENERATE_PKGCONFIG=ON:生成后续可供pkg-config使用的配置
3. 编译源码
sudo make -j8
或者
sudo make -j4
-j8 和 -j4 表示并行编译线程数,具体使用哪个,取决于你的机器配置。
4. 安装到系统目录
sudo make install
安装后别漏掉库路径配置
如果这一步不做,系统可能已经完成安装,但运行时仍然找不到 OpenCV 的动态库。

1. 编辑动态库配置文件
sudo gedit /etc/ld.so.conf
2. 添加库路径
在文件中加入下面这行:
/usr/loacal/lib
这里保留原文写法。实际操作时你需要特别留意路径是否拼写正确,因为库路径配置对后续加载是否成功有直接影响。
3. 刷新链接库缓存
sudo ldconfig
补齐 pkg-config 环境变量,方便查询和调用
为了让系统能通过 pkg-config 找到 OpenCV,还需要继续补环境变量。
1. 打开系统级 bash 配置
sudo gedit /etc/bash.bashrc
2. 在文件末尾添加以下两行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
3. 重新加载配置
source /etc/bash.bashrc
4. 查看 OpenCV 版本是否可被识别
pkg-config opencv --modversion
如果这里能正常输出版本号,说明 pkg-config 这一层已经打通。
最后做一次示例测试
安装完成后,可以直接进入 OpenCV 自带示例目录做一次简单验证。
进入 opencv/samples/cpp/example_cmake 目录,在终端依次执行:
cmake .
make
./opencv_example
如果示例能够顺利完成编译并运行,通常就说明这次源码安装已经基本成功。













