Windows 下 OpenCV 编译与 GoCV 安装实战
概述
在 Windows 平台上,如果你想从源码编译 OpenCV 并在 Go 语言中通过 GoCV 使用它,这篇文章会带你一步步完成:准备工具、编译 OpenCV、安装 GoCV 到运行验证,流程亲测可用,并附常见坑与排错建议。
一、准备工具:安装 MinGW 与 CMake
在正式编译之前,需要准备两个工具:
- MinGW‑w64(GCC 编译器)
- CMake(生成构建系统)
在命令提示符中创建目录:
1 | c: |
下载并解压:
- MinGW‑w64:选择 “GCC-8.1.0” 的 “x86_64-posix-seh” 版本,解压到
C:\mingw64 - CMake:下载 “Windows x64 ZIP” 版本,解压到
C:\cmake
将以下路径加入系统 PATH,并重启命令行:
1 | setx PATH "%PATH%;C:\mingw64\bin;C:\cmake\bin" |
验证安装:
1 | gcc --version |
如果看到 “gcc version 8.1.0 …” 与 “cmake version …” 输出即成功。
提醒:务必确认 MinGW 带有 “8.1 / posix / seh”,否则可能导致编译失败。
二、编译安装 OpenCV(含 opencv_contrib)
步骤:
下载源码包:
- OpenCV 主源码(例如
opencv-4.7.0.zip) - OpenCV 扩展模块
opencv_contrib-4.7.0.zip
- OpenCV 主源码(例如
创建目录结构:
1
2
3
4
5C:
└─ opencv
├─ build
├─ opencv-4.7.0
└─ opencv_contrib-4.7.0配置构建(在
C:\opencv\build):1
2
3cmake C:\opencv\opencv-4.7.0 -G "MinGW Makefiles" -B C:\opencv\build ^
-DOPENCV_EXTRA_MODULES_PATH=C:\opencv\opencv_contrib-4.7.0\modules ^
-DWITH_MSMF=OFF -DWITH_OBSENSOR=OFF说明:这里使用 MinGW Makefiles 生成方式。
编译(建议使用全部核心):
1
mingw32-make -j%NUMBER_OF_PROCESSORS%
安装:
1
mingw32-make install
完成后,将安装目录下的
bin(例如C:\opencv\build\bin)加入系统PATH。
常见检查项:
- MinGW 版本是否为 “8.1 x86_64-posix-seh”
PATH中是否包含C:\mingw64\bin与C:\cmake\bin- 若之前编译失败,删除
build目录后重试
三、Go 语言下的 GoCV 使用
获取 GoCV 源码:
1
go get -u -d gocv.io/x/gocv
确认
GOPATH:1
echo %GOPATH%
进入 GoCV 示例目录并运行版本测试:
1
2cd /D %GOPATH%\pkg\mod\gocv.io\x\gocv@v*\
go run cmd\version\main.go若输出类似:
1
2gocv version: 0.33.0
opencv lib version: 4.7.0则表示 GoCV 与 OpenCV 已成功集成。
四、常见问题与排错
- 编译卡在某步或失败:检查 MinGW 版本与 PATH;清空
build目录重试。 - 运行时报找不到 DLL:确保
C:\opencv\build\bin在系统 PATH 的前部位置。 - Go 运行找不到包:确认
GOPATH正确、Go 版本兼容,并使用go env检查环境。 - MSMF/OBSENSOR 等可选组件:如未使用可关闭,减少外部依赖(文中已示例
-DWITH_MSMF=OFF -DWITH_OBSENSOR=OFF)。
五、快速总结表格
| 阶段 | 操作 | 关键点 |
|---|---|---|
| 安装 MinGW 与 CMake | 下载并配置环境变量 | MinGW 需为 8.1-posix-seh;添加 bin 到 PATH |
| 编译 OpenCV | 下载源码 + opencv_contrib → CMake → make → install | 使用 MinGW Makefiles;失败时清理 build 重来 |
| 安装 GoCV | go get -u -d gocv.io/x/gocv → 版本测试 |
确保 OpenCV bin 在 PATH,Go 环境正常 |
| 测试 | go run cmd\version\main.go |
输出 GoCV 与 OpenCV 版本即成功 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 牧尘的NAS小站!
评论

