解决这个问题,目的在于获得并使用最新的完全版本的代码,主要方法是对CMake能够熟练使用,并且对编译等基础支持有所了解。

一、工具的准备
1 tortoisegit www.tortoisegit.org(可选)
2 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件
3 vs2012(可选用其它版本)
二、最新代码的下载(OpenCV和Contribute分别下载)
Http直接下载
或者通过git下载
下载的结果解压后放在一起
三、代码的make
Cmake将原始代码make成为你选择的编译器能够编译的形式。
主要流程为两次Configure->一次Generate->Open Project打开vs进行编译。参数的不同带来了结果的不同。其中注意以下几点
1、64位和32位的选择体现在选择编译器的时候是否选择Win64。我认为一般意义上说,32位的程序可以以兼容模式运行在64位机器上,反过来不可以。那么也就是说32位以效能换取兼容性。使用时根据实际情况选择。新手选择32位。
2、静态库和动态库的选择体现在是否选择BUILD_SHARED_LIBS(默认是选中的)。如果选择静态库,那么最后生成的程序和支持库是打包到一起的,交付起来比较方便;如果是动态库则是分开的。效能问题没有研究过。新上手的选择默认动态库。同时建议将BUILD_opencv_world选中,这样最后的结果是一个文件。
3、最为重要的,也是和普通OpenCV代码编译不同的地方。其中OPENCV_EXTRA_MODULES_PATH 中要填入contrib-master下的modules目录
编译生成的结果,能够不飘红就可以。
四、代码的编译
打开vs环境,选中install,生成。也可以批量生成(release和debug都要)。
最后出现这个错误是正常的
五、在新项目中使用OpenCV
动态库模式:
在VC++目录中设定"包含目录"为include地址;"引用目录"为提供的lib地址。注意这里的lib地址只是提供了接口信息。
链接器->输入 填入lib名称
将dll文件拷贝到PATH目录能够指向的地方,比如"C:\Windows\SysWOW64"
注意在交付的时候需要将支持的dll文件一并提供。
静态库:
设置Include
设置引入"常规 附加库目录"
设置lib(注意填全,不仅仅是opencv_word,注意后面.lib也要写)
注意,需要将"代码生成"的"运行库"改为"多线程调试"。这样就将MFC自己的支持库包含在最后生成的exe中了。
如果想要在程序设计的过程中,能够直接修改OpenCV自己的代码,添加相关功能,首先将Opencv项目引入
而后添加引用设置项目依赖,就可以直接在项目中修改OpenCV的代码,生成符合自己要求的专用类库。更可以通过Pull/request的方法直接申请提交。
感谢阅读至此,希望有所帮助!

Windows环境下最新OpenCV和Contribute代码的联合编译的更多相关文章

  1. Windows环境下最新OpenCV和Contribute代码的联合编译【20180926更新红字】

    解决这个问题,目的在于获得并使用最新的完全版本的代码,主要方法是对CMake能够熟练使用,并且对编译等基础支持有所了解. 因为这篇博客经过多次修改,所以里面的内容和配图可能有不是完全比对的地方,但是只 ...

  2. Windows环境下最新OpenCV和Contribute代码的联合编译【20190505更新红字】

    解决这个问题,目的在于获得并使用最新的完全版本的代码,主要方法是对CMake能够熟练使用,并且对编译等基础支持有所了解. 因为这篇博客经过多次修改,所以里面的内容和配图可能有不是完全比对的地方,但是只 ...

  3. spark最新源码下载并导入到开发环境下助推高质量代码(Scala IDEA for Eclipse和IntelliJ IDEA皆适用)(以spark2.2.0源码包为例)(图文详解)

    不多说,直接上干货! 前言   其实啊,无论你是初学者还是具备了有一定spark编程经验,都需要对spark源码足够重视起来. 本人,肺腑之己见,想要成为大数据的大牛和顶尖专家,多结合源码和操练编程. ...

  4. 【备忘】windows环境下20行php代码搞定音频裁剪

    先上图,由于最近的需求需要对语音文件进行处理,所以抽空研究了下php处理音/视频文件的处理,简单的demo处理,截取一个音频文件的前20秒,并保存新的媒体文件. 操作步骤: ①在此站点下载所需的辅助程 ...

  5. Windows环境下通过Git来管理自己的Android代码

    前面已经介绍了在Windows下使用git工具来下载Android的源代码,Windows环境下通过Git得到Android源代码,这里记录我使用git工具来管理我自己的代码,git是一种分布式的项目 ...

  6. 第一部分:使用iReport制作报表的详细过程(Windows环境下)

    提示:在有些板块,文中的图片看不到,建议到我的blog浏览文章:http://blog.csdn.net/jemlee2002/文章将会涉及3个方面的内容: 第一部分:使用iReport制作报表的详细 ...

  7. windows环境下nutch2.x 在eclipse中实现抓取数据存进mysql详细步骤

    nutch2.x 在eclipse中实现抓取数据存进mysql步骤 最近在研究nutch,花了几天时间,也遇到很多问题,最终结果还是成功了,在此记录,并给其他有兴趣的人提供参考,共同进步. 对nutc ...

  8. Windows环境下google protobuf入门

    我使用的是最新版本的protobuf(protobuf-2.6.1),编程工具使用VS2010.简单介绍下google protobuf: google protobuf 主要用于通讯,是google ...

  9. 浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍

    浅谈Windows环境下DOS及MS-DOS以及常见一些命令的介绍 前记 自己是搞编程的,首先我是一个菜鸟,接触计算机这么久了,感觉很多计算机方面的技术和知识朦朦胧胧.模模糊糊,貌似有些贻笑大方了:所 ...

随机推荐

  1. Redux源码分析之基本概念

    Redux源码分析之基本概念 Redux源码分析之createStore Redux源码分析之bindActionCreators Redux源码分析之combineReducers Redux源码分 ...

  2. c++文件编译的一些说明

    1,头文件只在于预处理阶段用于完全包含该头文件的内容,每个c文件是一个编译单元,类定义和类声明,变量和函数声明,类内联实现是内部链接,全局变量和函数的定义以及类外部实现是具有全局链接性,假设将所有c单 ...

  3. Linux下软件的卸载

    一.rpm -q -a 查看所安的全部软件 二.#rpm -e [package name]  卸载想要卸载的软件  

  4. POJ 3669 Meteor Shower (BFS+预处理)

    Description Bessie hears that an extraordinary meteor shower is coming; reports say that these meteo ...

  5. mysql-python 安装

    [root@localhost ~]# [root@localhost ~]# [root@localhost ~]# gcc -v    查看是否安装gcc 若报错则未安装 [root@localh ...

  6. 暑假OI规划

    为了准备11月的NOIP(最好能到550+)暑假要认真的刷题: 1.NOIP的原题 2.USACO历年的GOLD 3.CF的比赛 4.刷几本书 5.带着做bzoj(lydsy) 6.少玩游戏

  7. cve-2017-8464 复现 快捷方式远程代码执行

    cve-2017-8464 2017年6月13日,微软官方发布编号为CVE-2017-8464的漏洞公告,官方介绍Windows系统在解析快捷方式时存在远程执行任意代码的高危漏洞,黑客可以通过U盘.网 ...

  8. JS非空验证及邮箱验证

    非空验证 <body> <table> <tr> <td>姓名:</td> <td><input type="t ...

  9. CSS常见英语单词属性一览

    这些是css中常会用到的一些英文单词,大家可以多看看,多使用就会容易记得了. color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体 ...

  10. JMeter网站测试分析

     WEB类型: User Driver:以用户量作为衡量系统性能的主要指标的系统,典型如IM系统.企业 内部业务系统: TPS-Driver:以tps作为衡量系统性能的主要指标的系统,典型的如消息系统 ...