如何在 Linux 上 10 分钟源码装好 OpenCV:两条路径完整实操
2026/8/29 9:10:23 网站建设 项目流程

如何在 Linux 上 10 分钟源码装好 OpenCV:两条路径完整实操

【免费下载链接】opencvOpen Source Computer Vision Library项目地址: https://gitcode.com/GitHub_Trending/opencv31/opencv

你刚拿到 OpenCV 这个开源计算机视觉库的源码,想在 Linux 机器上编出能调用的 C++ 视觉库,支持图像处理、目标检测这类常用能力。本文从源码装出完整可用版本,不绕弯子。

OpenCV 安装前置依赖与 30 秒自检

开编之前,先把这几样备齐。缺任何一样,后面的命令都会卡住:

依赖安装命令缺了会怎样
GCC/G++ 编译器sudo apt install -y build-essentialC++ 源码根本编不出来
CMake(3.13 起步,见 cmake/OpenCVMinDepVersions.cmake)sudo apt install -y cmake连配置阶段都进不去
Ninja(可选)sudo apt install -y ninja-build无影响,默认走 Make;多核并行编译时 Ninja 更快
gitsudo apt install -y git拉不到源码

装完后花 30 秒确认工具链齐全,粘贴即验:

# 确认三件套都在,且 CMake 版本达标 which cmake g++ make cmake --version | head -1

期望输出是三个路径都找到、版本号不低于 3.13。少一样就回上表补装。

OpenCV 源码两条编译路径

路径 A · 最快路线:只编 core 模块

目的是先确认你的工具链能走通,不是急着拿全功能库。只编 core 模块只需几分钟,比全量编译快得多:

# 克隆源码 git clone https://gitcode.com/gh_mirrors/opencv31/opencv cd opencv # 建独立构建目录;项目明确禁止在源码树内直接构建 mkdir -p build && cd build # 只编 core 模块 cmake -DBUILD_LIST=core .. # 并行编译,-j 后是核数 cmake --build . -j$(nproc)

路径 B · 完整路线:全功能 OpenCV 编译

要图像处理、视频解码等全部模块,走这条。默认就是 Release 模式:

# 克隆源码并进入构建目录 git clone https://gitcode.com/gh_mirrors/opencv31/opencv cd opencv && mkdir -p build && cd build # 配置:Release,全量模块 cmake -DCMAKE_BUILD_TYPE=Release .. # 并行编译,-j 后是核数 cmake --build . -j$(nproc) # 跑完看产物:库在 lib,可执行文件在 bin ls lib bin | head -20

跑完你会发现build/lib里躺着一串libopencv_*.sobuild/bin里有opencv_version小工具,这就是构建产物本体。

什么时候需要 contrib 扩展模块

想要人脸识别(face)、文本检测(text)、SIFT(xfeatures2d)这类扩展算法时,它们不在主仓库,而在单独的 opencv_contrib 仓库里。代价:多克隆一个仓库、编译时间再拉长一截。需要时配置阶段加一个参数:

# 指向你自己准备好的 contrib 仓库的 modules 目录 cmake -DOPENCV_EXTRA_MODULES_PATH=/path/to/opencv_contrib/modules ..

OpenCV 装到 /usr/local 还是用户目录

Linux 上默认安装位置是/usr/local(见 CMakeLists.txt 中的默认值逻辑)。只在本地写代码的话,其实可以完全不安装,直接在项目里链接build目录下的库。要分发给同事或别的机器时再改位置:

# 装到自己的家目录,不需要 sudo cmake -DCMAKE_INSTALL_PREFIX=$HOME/.local .. cmake --install .

⚠️ 直接装进/usr/local可能和发行版自带的 OpenCV 包冲突,出现头文件版本打架。拿不准就装用户目录,或者干脆不装。

OpenCV 安装验收三步与常见问题

验收就两条,一条看版本,一条数模块:

# 编出来的可执行文件,打印版本号和模块清单 ./build/bin/opencv_version # 统计实际编出了几个模块 ls build/lib | grep -c opencv

想直观确认库能用,这是仓库 dnn 教程里的目标检测示例效果:

排错按「症状 → 原因 → 一条修复命令」对号入座:

症状原因修复
cmake 报 "In-source builds are not allowed"在源码树里直接跑了 cmakecd .. && mkdir build && cd build && cmake ..
提示 CMake 版本不够系统 cmake 过旧sudo apt install -y cmake后重新配置
编译特别慢,超过一小时串行编译cmake --build . -j$(nproc)
装完后 C++ 工程找不到头文件没执行 install,或链接指错目录cmake --install .并按输出提示配置链接路径

下一步:挑一个 samples/cpp/ 里的示例写你的第一个图像处理程序;各模块的详细用法看 doc/tutorials/ 官方教程。

【免费下载链接】opencvOpen Source Computer Vision Library项目地址: https://gitcode.com/GitHub_Trending/opencv31/opencv

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询