解决这个问题,目的在于获得并使用最新的完全版本的代码,主要方法是对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. 关于MySQL latch争用深入分析与判断

    1.latch锁是什么锁? 2.latch锁是如何保护list? 3.latch争用的现象和过程? 4.latch什么时候会产生严重的争用? 5.如何监控latch争用情况? 6.如何确认latch争 ...

  2. 微信客户端+微信公众平台+新浪云SAE+Arduino+WS100(控制LED)

    第一步:准备 1.智能手机微信客户端或微信电脑版 2.注册微信公众平台 https://mp.weixin.qq.com 3.注册新浪账号 http://www.sinacloud.com 4.拥有一 ...

  3. rpm体系下的linux安装httpd+mysql+…

    一.安装apache 在rpm体系下,apache称为httpd. yum install httpd 即可! 二.安装mysql yum install mysql 三.安装mysql-server ...

  4. 第二棵树:Splay

    Splay这东西神难打--什么都没动板子敲上就直逼200行了,而且非常难记(仿佛是模板长的必然结果).但是为什么还要学呢?据说是因为它可以实现区间操作.但是自从我得知无旋Treap也能做到这些,默默对 ...

  5. 如何开发自己的搜索帝国之Elasticsearch

    搜索引擎是什么? 搜索引擎是指根据一定的策略.运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统.搜索引擎包括全文索引.目录索引 ...

  6. .NET Exceptionless 日志收集框架本地环境搭建

    一.简介 Exceptionless 是一个开源的实时的日志收集框架,它可以应用在基于 ASP.NET,ASP.NET Core,Web Api,Web Forms,WPF,Console,MVC 等 ...

  7. Linux操作系统-命令-free

    在看过网友写的一篇名为<Buffer和Cache的区别>http://zhumeng8337797.blog.163.com/blog/static/1007689142011102447 ...

  8. Ubuntu下OpenCV不能被某个python版本识别

    Ubuntu下OpenCV不能被某个python版本识别 Solution: 可以进入相应版本的python,查看该python的path: python import sys print(sys.p ...

  9. 数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)

    树 即二叉搜索树: 1.所有非叶子结点至多拥有两个儿子(Left和Right): 2.所有结点存储一个关键字: 非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树: 如: BST树 ...

  10. HTML5——css基础语法

    1.了解CSS CSS是一种用来表现HTML等文件样式的计算机语言,是对HTMl文件中设置的各种标签添加各种各样的样式与表达方式,让网页更生动,更美观. 2.导入CSS的三种方式 1.行内样式表:直接 ...