cmake编译opencv-contrib
时间: 2025-03-28 18:21:42 浏览: 40
### 使用 CMake 编译 OpenCV 和 OpenCV-Contrib 的教程
#### 配置与生成
在使用 CMake 进行编译之前,需要确保已经下载了 OpenCV 和 OpenCV-Contrib 源码文件。通常情况下,这两个项目的版本号应保持一致以避免兼容性问题[^2]。
以下是具体的配置过程:
1. **设置变量**
定义必要的环境变量以便于后续操作更加清晰明了。例如:
```bash
export OPENCV_VERSION=4.10.0
export OPENCV_DIR=opencv-${OPENCV_VERSION}
export OPENCV_CONTRIB_DIR=opencv_contrib-${OPENCV_VERSION}
```
2. **创建构建目录**
创建一个新的 `build` 文件夹用于存储中间产物以及最终目标二进制文件。
```bash
mkdir -p ${PWD}/${OPENCV_DIR}/build && cd $_
```
3. **调用 CMake 工具链**
执行以下命令完成初步配置工作,其中 `-D` 参数用来指定额外选项或者路径信息。
```bash
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D OPENCV_EXTRA_MODULES_PATH=${PWD}/${OPENCV_CONTRIB_DIR}/modules ..
```
上述指令中的每一部分都有其特定含义:`CMAKE_BUILD_TYPE` 控制优化级别;`CMAKE_INSTALL_PREFIX` 设定安装位置;而 `OPENCV_EXTRA_MODULES_PATH` 则指向 contrib 组件所在地址[^3]。
#### 构建阶段
一旦前序步骤顺利完成,则可以启动实际的编译进程。推荐利用多线程加速此环节的速度(假设 CPU 支持并发执行),比如通过参数 `-jN` 来调整使用的核数 N。
```bash
make -j$(nproc) || make -j16 # 自动检测核心数量或固定为 16 线程模式
sudo make install # 将成果部署到预设的目标区域
```
如果遇到任何错误提示,请仔细阅读日志内容定位具体原因后再尝试修复。
对于 Windows 用户而言,在 Visual Studio 中集成类似的流程可能稍显复杂一些,但基本思路相同——借助图形界面版 CMake 设置好对应关系之后再交由 IDE 处理剩余事务即可[^4]。
---
### 注意事项
- 如果不需要某些功能模块的话,可以通过修改 CMakeLists.txt 或者直接编辑 GUI 对话框来关闭它们从而减少不必要的计算负担。
- 不同操作系统之间可能存在细微差异,因此务必参照官方文档获取最权威指导建议。
---
阅读全文
相关推荐

















