windows下使用cmake+mingw编译opencv2.4.13.3版

大概从2.4.版本开始,opencv官方不再提供mingw版编译好的库,如果需要使用mingw版的库时,就需要自己手动编译了,以下是编译的简单步骤:

1,编译工具

mingw5.3.0及以上版本(可以单独下载mingw的window安装包,也可以使用QT中集成的mingw编译器,我使用的qt5.9.1版中集成的mingw)

cmake-3.10(直接在cmake官方下载最新的windows版32位的msi包即可,安装时最后一步记得把cmake安装路径写入环境变量)

opencv2.4.13.3的源码(直接在opencv官网下载对应版本的source压缩包解压)


2,编译工具安装与配置

将mingw的bin目录写入环境变量,这里需要注意,如果系统的环境变量(包括user环境变量)中有msys的路径,请先把msys的环境变量给屏蔽掉,不然后续编译时无法选择mingw编译方式,cmake会优先使用msys编译方式;

我这里使用的Qt中的集成的mingw,所以路径为:E:\Qt\Qt5.9.1\Tools\mingw530_32\bin


将cmake安装中午写入系统环境变量中(cmake安装步骤的最后一步选择写入即可);


将opencv源码解压到指定目录下,我这里解压为:D:\project\opencv-2.4.13.3,同时创建一个新的目录,D:\project\opencv-mingw-2.4.13.3,用于存放cmake生成的opencv输出路径;


3,编译

启动cmake,配置源码路径,和输出路径,source code要选择到有CMakeLists.txt的文件夹下


点击“configure",配置mingw编译器,如果下拉选择中没有mingw makefiles,说明mingw安装路径未添加到环境变量;


选择mingw目录下的gcc.exe和g++.exe分别做为c和c++的编译工具

完成后即可自动进行configure;

待configure执行完成后,显示如下界面,这里可以选择编译opencv组件的内容,比如with_opengl, with_qt等,根据自己需要进行增减即可;

选择后,执行generate即可;

如果执行结束后,提示opencv版本不匹配的问题:

CMake Warning at cmake/OpenCVPackaging.cmake:23 (message):
CPACK_PACKAGE_VERSION does not match version provided by version.hpp
header!
Call Stack (most recent call first):
CMakeLists.txt:1105 (include)

那么修改打开CMakeLists.txt,找到OPENCV_VERSION配置的地方,屏蔽掉通过git工具获取opencv版本并设置的方法,直接配置版本号为当前你下载的版本,我的修改如下:

然后重新gernerate即可;


最后启动命令行cmd

cmd切换到"Whrer to build binaries"选定的位置,输入mingw32-make

即可开始使用mingw编译opencv源码,待其完成即可;


编译完成后,执行mingw32-make install,将编译生成的库文件和include集成到install目录中,即可直接使用;










你可能感兴趣的:(opencv)