在windows上编译并使用opencv的正确姿势
本文简单介绍了如何在windows上用mingw编译opencv!
并在cmake中使用自己编译好的opencv!
编译OpenCV
编译前的准备
如果你想使用MSVC进行编译的话,你需要安装Visual Studio。由于本文中使用的编译器为mingw,这里暂时不介绍msvc。
安装 mingw
前往https://github.com/brechtsanders/winlibs_mingw/releases
下载完成后,解压mingw到一个文件夹下。
最后,把mingw的bin文件夹的路径添加的系统的PATH环境变量中即可
安装 cmake
前往https://cmake.org/download/,下载对应系统的安装包,然后安装即可。
验证安装完成
确认工具链都以及安装完成且已经在path里面惹
下载OpenCV源码以及OpenCV Module源码
前往https://github.com/opencv/opencv/tags 下载指定版本的源码,或者直接clone
前往https://github.com/opencv/opencv_contrib/tags 下载OpenCV module的源码,或者直接clone
下载完成后解压到一个位置,比如D:/repo/opencv
和 D:/repo/opencv_contrib
开始编译
在开始中搜索 CMake (cmake-gui) 并启动
在 Where is the source code
中填入 D:/repo/opencv/sources
(改成解压的位置)
在 Where to build the binaries
中填入 D:/repo/opencv/build
(或者任意一个你想要的文件夹)
点击 Configure
按钮,在跳出的界面中选择 "Mingw Makefiles"
完成之后,点finish等待cmake configure完成。
在完成configure之后,需要修改一些选项,删除一些不要的module,添加一些需要的module,以及设置安装路径
在搜索中搜索选项的名字,并填上相对应的值
- BUILD_PROTOBUF – 取消勾选
- WITH_PROTOBUF – 取消勾选
- BUILD_TESTS – 取消勾选
- WITH_OPENEXR – 取消勾选
- BUILD_OPENEXR – 取消勾选
- OPENCV_ENABLE_ALLOCATOR_STATS – 取消勾选
- CMAKE_BUILD_TYPE – RELEASE
- CMAKE_INSTALL_PREFIX – 填上安装路径比如
D:/repo/opencv/install
- OPENCV_EXTRA_MODULES_PATH - 填上opencv_contrib module的路径,比如
D:/repo/opencv_contrib/modules
完成选项设置后,摁Generate
按钮生成makefile
等待makefile生成完成后。cmd进入你设置的build文件夹 (D:/repo/opencv/build
)
然后使用make命令开始编译
1 | mingw32-make.exe |
整个编译过程可能持续数小时(到几天)
完成make后,使用make install来安装opencv到你前面设置的路径
1 | mingw32-make.exe install |
最后把opencv install完成之后生成的bin文件夹加入系统的path即可。
比如 D:/repo/opencv/install/x64/mingw/bin
食用OpenCV
在cmake中添加如下文本即可
OpenCV_DIR
就是上文里自己设置的安装路径
你可以在cmakelist里手动设置OpenCV_DIR
的位置,也可以用cmake-gui,然后选择安装路径。
1 | # OpenCV |
Notes
- OpenCV cuda在windows下无法使用mingw进行编译