您的位置:首页 > 运维架构

自己动手编译opencv源码(Win7 64位+Visual Studio2010+cmake2.8+OpenCV2.4.4)

2015-01-08 17:08 323 查看

通常情况下,我们需要使用opencv的库函数时,只需将opencv的环境变量配置好就可以了,本人也在前面的文章中进行过介绍,博客链接为/article/11003479.html。但是如果我们想要查看OpenCV源码、调试OpenCV中相关函数甚至自己将其中的一些功能拿出来单独编译成库文件供我们自己使用的话,就需要自己编译OpenCV的源码而不是直接使用OpenCV已经帮我们编译好的库文件。好了,下面将介绍如何自己编译OpenCV源码。

一.工具准备

1.本人所使用操作系统为win7 64位(当然也可以是32位的);
2.本人使用Visual Studio2010,大家可以去网上down,down下来后完全安装就可以了;
3.本人使用cmake2.8.12.2。CMake是一个开源软件,可以在其官网下载http://www.cmake.org/。下载页面的Source distributions处可以下载到。我下载的是http://www.cmake.org/files/v2.8/cmake-2.8.12.2-win32-x86.exe。现在cmake的版本是三点几了,不过我还是用以前的老版本;
4.本人的所使用的OpenCV版本为OpenCV2.4.4,也可以直接到网上down下来,然后解压到某目录下面就好了,我的OpenCV的安装目录是D:\program files\opencv244,编译源码的目录是D:\program files\opencv244_build;
ps:看过好多前人的博客,多说要用TBB,我不知道它是干嘛的,所以就没有用,在这里就不做介绍。

二.使用cmake生成opencv源代码工程的解决方案

这一步是自己编译OpenCV源码的核心了,下面我将分步介绍:
1.打开cmake,指定OpenCV的源路径与目标路径:



2.点击configure如下:



这里需要选择合适的编译器,由于我用的是64位的系统,所以我选择如上的编译器。当然如果我们配置OpenCV时只需要使用到32位的,也可以选在Viusal Studio 10,完成选择后点击Finish。
3.经过上一步后,过大概半分钟的时间就可以出现如下界面,当然不同的机器配置可能时间也不一样,因为我用的是4G的内存,所以速度上面可能快点。下面我们可以就可以选择需要编译的模块,将需要编译的模块打上“√”就行了。



ps:刚开始编译时一直出现LINK : fatal error LNK1104: 无法打开文件“..\..\lib\Debug\opencv_core244d.lib”,编译了一天将要崩溃了也找不到原因,然后我就单独编译了opencv_core模块,发现报错。报错的结果我没有具体记下来,大概是说gpu编译出问题了。可是我以前安装cuda5.5时也是全都编译的,最多也就是涉及到cuda的几个模块生成不成功,而其余模块还是能够成功的。后来我想着我装的是CUDA6.0,所以config时在选择如上需要编译的模块时,把含有cuda与gpu的模块的“√”去掉,结果编译很顺利。

4.经过上面的配置继续点击Configure,将出现如下界面:



此时,需要编译的模块的红色都没有了。
5.继续点击Generate,生成源代码工程的解决方案,如下:



见到如上界面,就说明用cmake生成源代码的解决方案就大功告成了。

三.使用VS编译源代码:

1.打开D:\program files\opencv244_build目录,用Visual Studio打开OpenCV.sln文件如下:



我们只需要在ALL_BUILD中右击—>生成,即可编译源码的Debug部分,然后再编译出Release版本就可以了。

2.在CMakeTargets中的Install右击->生成,生成最终需要的install文件夹。

四.相关配置:

1.打开D:\program files\opencv244_build目录,可以看到新生成了bin、include、install、lib等目录。将install文件夹copy至原opencv目录D:\program files\opencv244下,并且改名为buildByRami(名字随便起)。
2.环境变量配置:
在系统的path下添加D:\program files\opencv244\buildByRami\bin;
在vs中配置相关环境变量
配置属性->VC++目录->可执行文件目录:添加D:\program files\opencv244\buildByRami\bin;
配置属性->VC++目录->包含目录:添加D:\program files\opencv244\buildByRami\include;D:\program files\opencv244\buildByRami\include\opencv;D:\program files\opencv244\buildByRami\include\opencv2;

配置属性->VC++目录->库目录:添加D:\program files\opencv244\buildByRami\lib;
链接器->输入->附加依赖项:
opencv_calib3d244d.lib

opencv_contrib244d.lib

opencv_core244d.lib

opencv_features2d244d.lib

opencv_flann244d.lib

opencv_highgui244d.lib

opencv_imgproc244d.lib

opencv_legacy244d.lib

opencv_ml244d.lib

opencv_objdetect244d.lib

opencv_ts244d.lib

opencv_video244d.lib
到此就完成了配置,本来准备将配置环境变量的图片上传的,可是不知道csdn怎么上传不了,所以就以文字方式上传吧,如果有不清楚的,可以参考我博客中关于配置环境变量的文章。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: