Windows下使用CMake+MinGw编译opencv


最近想再研究一下OpenCV,以前玩OpenCV的时候都是在VS下编译的。今天在公司,电脑上没有VS,也没有安装文件,要下个VS,估计黄花菜都凉了。

刚好以前在Eclipse上安装过C/C++,而CMake中也有使用Eclipse C/C++来编译的选项。

(题外话:关于EClipse怎样安装C/C++插件就不多说了,插件装好后,装个MinGW,在Eclipse中配置一下就可以在Eclipse中使用了)

MinGW中的bin目录,记得添加到windwos的path中


好了,回到正题,用CMake和MinGw编译OpenCV。

由于CMake的官网上下载下来的都是免安装版的,很多环节变量都没有配置。在编译过程中需要手动指定(其实也就值需要指定几个)。

打开CMake,选择Opencv的源文件夹(../opencv/sources),CMake输出文件夹(这里只是输出CMake工程,最后要对这个工程make才的得到最终可用的Opencv)。然后点Configure,在弹出的对话框中选择Eclipse CDT4 - MinGW。下面选择Specify native compilers。在弹出的对话框中指定MinGW的bin目录下的gcc和g++两个可执行程序。

我刚开始没有设置CMake的其他变量,一按Configure,它就报错。根据错误中提示的变量,设置一条运行一次,只需要设置几条就可以了,其他的它都会自动从系统变量中读出来。

中间遇到一个变量老是出错:CMAKE_MAKE_PROGRAM,  这篇文章中有对应的说明http://blog.csdn.net/fuyajun01/article/details/8891749。把那个变量设置成MinGw中的make.exe就OK了。


完成过后,会在指定的目录文件夹下生成一大堆东西,我刚开始还以为这样就完了,但是怎么也找不到lib,h头文件这些东西,怎么回事呢?回过头去参考了一下
VS的编译后发现,CMake输出的结果只是一个中间结果,是个sln文件,还需要用VS打开这个sln工程,再编译,才是最终可用的OpenCv。

于是我回来看CMake生成的结果下面有什么特别,因为我是选择的Eclipse生成方式,是不是会生成一个EClipse的工程呢,但是遗憾地没找到。不过我发现结果根目录下有一个makefile文件,这太好了。 因为MinGW有make程序,于是直接在windows的命令行模式下,切换到结果目录下,执行make , make install,OK,开始编译啦,等编译完成后,热乎乎的OpenCV就可以使用啦。

你可能感兴趣的:(opencv)