如何在 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-essential | C++ 源码根本编不出来 |
| CMake(3.13 起步,见 cmake/OpenCVMinDepVersions.cmake) | sudo apt install -y cmake | 连配置阶段都进不去 |
| Ninja(可选) | sudo apt install -y ninja-build | 无影响,默认走 Make;多核并行编译时 Ninja 更快 |
| git | sudo 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_*.so,build/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" | 在源码树里直接跑了 cmake | cd .. && 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),仅供参考