为何要使用CMake+VS编译OpenCV的源代码

多数状况下,可以直接使用OpenCV自带的库文件,但是假设是为了方便调试:linux

1. 方便调试opencv源代码windows

2. 为了与某些库兼容函数

仍是需要又一次编译opencv的源代码。工具

OpenCV1.0版本号有windowslinux之分,在 \OpenCV\_make目录如下已经存在了一个opencv.dsw的project文件。直接用VC6,或者。Visual Studio就可以打开该project,从而可以进行对应的编译工做;而对于OpenCV2.0及之后的版本号而言,就没有相似的project文件了。这个时候,就需要你本身利用CMake工具来生成一个Visual Studio的project文件了。post


CMake编译OpenCVui

OpenCV的下载与安装

下载Windows下的安装文件OpenCV-2.4.3.exe,双击解压。选择需要的安装文件夹就能够。个人存放路径为D:\opencv。spa

解压完毕后就是需要的文件了。注意对应的文件夹不能包括中文。调试

编译OpenCV

这一步不是必须的,假设不编译,可以使用编译好的库,但是不能进行源码的跟踪调试(未验证),所以这里仍是编译一下。orm

编译用的工具Cmake,这是一个跨平台的安装编译工具。主要用于把OpenCV的源代码生成相应的VSproject。操做例如如下。blog

 

一、如图所看到的。设置OpenCV的安装文件路径和想要生成的文件路径。

二、点击左下方configure,在弹出的选项中选择Visual Studio 10(相应2010版本号)。

三、点击完毕就会进行配置,配置后的界面例如如下图所看到的,选择需要增长的文件。我这里勾上BUILD_EXAMPLES其它选项默认。

四、改动完毕后再次点击configure进行配置。完毕后点击Generate,至此完毕配置。

SNAGHTMLa64bc2

 

使用VS2010编译版本号库

以上操做完毕后,就可以在生成的文件夹下找到相应的project文件,依据上图配置个人文件路径为D:\OpenCV24\OpenCV.sln,使用VS2010打开,进行例如如下操做。

一、在Debug下,选择解决方式(解决方式资源管理器)里的 解决方式“OpenCV”。点右键,执行"又一次生成解决方式"。

image

二、生成成功后。在选择INSTALL项目,右键执行生成;

三、在Release下进行1-2步的操做。

四、以上操做完毕后,针对当前的系统的OpenCV库就生成了。

VS的相关配置

也即告诉VC去什么地方寻找OpenCV的头文件和库。打开VC。选择菜单“工具”->“选项”->“项目和解决方式”->“VC++文件夹”->“包括文件”。在VS2010中此选项打开例如如下图所看到的,显示编辑功能被否决。

SNAGHTMLcbd33a

能够在详细的项目中右键->属性来设置,仅仅是这种设置没法被继承。每一个项目都需要单独设置,所以需要丛一个能够被继承的全局设置,方法例如如下:

一、在VS中确保至少有一个project被打开的状况下,点击“视图”->“其它窗体”->“属性管理器”,而后从左側随意项目中打开“Debug| Win32”->“Microsoft.Cpp.Win32.user”,例如如下图所看到的。

image

二、在弹出例如如下图所看到的的窗体中,加入文件包括与库的路径。点击左側VC++文件夹,编辑右側的包括文件夹与库文件夹。分别加入相应的路径。

SNAGHTMLd1d2dc

相应的路径例如如下:

包括文件夹

使用提供的库需要加入(相应我本身的安装文件夹。路径依据我的安装改动)

D:\opencv\build\include

D:\opencv\build\include\opencv

D:\opencv\build\include\opencv2

假设使用的是上文编译的库的路径,则加入(相应我本身的文件夹,路径依据我的安装改动)

D:\OpenCV24\install\include

D:\OpenCV24\install\include\opencv

D:\OpenCV24\install\include\opencv2

SNAGHTMLd945ca

64为系统相应更改。

库文件夹

在OpenCV的安装文件里已经为VC2008和2010预先编译好了动态库与静态库,所以可以不需要编译直接加入。

针对VS2010加入(相应我本身的文件夹。路径依据我的安装改动)

D:\opencv\build\x86\vc10\lib

加入上文编译的库则加入(相应我本身的文件夹。路径依据我的安装改动)

D:\OpenCV24\install\lib

注:有的资料中说法例如如下:

(注:由于本身编译成功,lib文件在Debug和Release两个文件里,载入库时需到Debug和Release中, 我配置的库文件夹为:D:\Program Files\OpenCV2.3.1\opencv\build\my\install\lib\Debug,不然调试时没法进入Open CV代码中。 by:Jackyzzy 赵振阳)

但是个人文件夹下并无相应的文件夹。反而在D:\OpenCV24\lib文件夹下有相应的Debug文件夹,文件通过对照也一致。所以这个地方到底加入什么地方的眼下尚未验证,已经验证的同窗欢迎告知我。

到这里。配置完成,随意打开一个项目经过属性来查看,可以看到以上配置已经被继承。

环境变量设置

刚才设置的是动态库,所以还需要将OpenCV的dll文件所在的文件夹增长Path环境变量。dll文件文件夹例如如下:

本身编译的库

D:\OpenCV24\install\bin

使用提供的库(VS2010)

D:\opencv\build\x86\vc10\bin

有的资料中说由于有些函数需要使用TBB,所以需要把TBB相关也加入环境变量,但是我并无在opencv\build\common\tbb这个路径中找到TBB文件件。在2.4.3版本号中通过查找此目录存在与opencv\build\common\tbb 路径下,所以这部分相同未验证。

至此。就完毕了OpenCV的安装与配置。

相关文章
相关标签/搜索