zoukankan      html  css  js  c++  java
  • 为什么要使用CMake+VS编译OpenCV的源代码

    多数情况下,能够直接使用OpenCV自带的库文件,可是假设是为了方便调试:

    1. 方便调试opencv源代码

    2. 为了与某些库兼容

    还是须要又一次编译opencv的源代码。

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


    CMake编译OpenCV

    OpenCV的下载与安装

    下载Windows下的安装文件OpenCV-2.4.3.exe,双击解压。选择须要的安装文件夹就可以。我的存放路径为D:opencv。

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

    编译OpenCV

    这一步不是必须的,假设不编译,能够使用编译好的库,可是不能进行源码的跟踪调试(未验证),因此这里还是编译一下。

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

     

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

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

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

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

    SNAGHTMLa64bc2

     

    使用VS2010编译版本号库

    以上操作完毕后,就能够在生成的文件夹下找到相应的project文件,依据上图配置我的文件路径为D:OpenCV24OpenCV.sln,使用VS2010打开,进行例如以下操作。

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

    image

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

    3、在Release下进行1-2步的操作。

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

    VS的相关配置

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

    SNAGHTMLcbd33a

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

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

    image

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

    SNAGHTMLd1d2dc

    相应的路径例如以下:

    包括文件夹

    使用提供的库须要加入(相应我自己的安装文件夹。路径依据个人安装改动)

    D:opencvuildinclude

    D:opencvuildincludeopencv

    D:opencvuildincludeopencv2

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

    D:OpenCV24installinclude

    D:OpenCV24installincludeopencv

    D:OpenCV24installincludeopencv2

    SNAGHTMLd945ca

    64为系统相应更改。

    库文件夹

    在OpenCV的安装文件里已经为VC2008和2010预先编译好了动态库与静态库,因此能够不须要编译直接加入。

    针对VS2010加入(相应我自己的文件夹。路径依据个人安装改动)

    D:opencvuildx86vc10lib

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

    D:OpenCV24installlib

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

    (注:因为自己编译成功,lib文件在Debug和Release两个文件里,载入库时需到Debug和Release中, 我配置的库文件夹为:D:Program FilesOpenCV2.3.1opencvuildmyinstalllibDebug,否则调试时无法进入Open CV代码中。 by:Jackyzzy 赵振阳)

    可是我的文件夹下并没有相应的文件夹。反而在D:OpenCV24lib文件夹下有相应的Debug文件夹,文件经过对照也一致。因此这个地方到底加入什么地方的眼下还没有验证,已经验证的同学欢迎告知我。

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

    环境变量设置

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

    自己编译的库

    D:OpenCV24installin

    使用提供的库(VS2010)

    D:opencvuildx86vc10in

    有的资料中说因为有些函数须要使用TBB,因此须要把TBB相关也加入环境变量,可是我并没有在opencvuildcommon bb这个路径中找到TBB文件件。在2.4.3版本号中经过查找此目录存在与opencvuildcommon bb 路径下,因此这部分相同未验证。

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




  • 相关阅读:
    网店系统H5版(一)
    php date()方法传入时间戳为空时返回1970-01-01
    MySQL实用语句
    HTTPS和SSL握手过程(转载)
    jinfo
    linux下以‘-’开头的文件名
    ssh连接服务器失败解决记录
    Linux时区详解
    fiddler抓包url有乱码
    mysql灾备演练问题
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7118563.html
Copyright © 2011-2022 走看看