不同OpenCV版本和不同VS版本之间进行配置的注意事项
下面内容为不同系统和不同版本VS+不同版本OpenCV之间进行配置时的注意事项。本教程中开始提到如果VS版本和OpenCV版本相匹配的话,只要按上述步骤配置都是没有问题的。但是如果说版本不匹配的话,就会出现问题。
什么是版本不匹配呢,在D:\OpenCV244\opencv\build\x86,(不同解压路径位置不同)
有vc9和vc10和vc11这三个东西,或许你会发现在OpenCV相应的目录下是没有vc11这个东西的,vc11是属于VS2012的编译器部分,也就是说在OpenCV243里是不正式支持VS2012的,在OpenCV244里才开始正式支持VS2012,vc10则是属于VS2010的编译器部分,而无论是244还是243里面都有vc10,所以如果你用的是VS2012以下版本的话,是不会出现OpenCV和VS不匹配的问题。网上的教程都是在VS2010下配置的OpenCV243,所以这样是不会出现版本不匹配问题的,只要按照步骤配置那四个部分就好了。
但是,如果你要配置的工作环境是VS2012,然后又是OpenCV243,如果你按步骤把四个部分都设置好了,那会出现什么问题呢,编译是可以编译的,但是在执行的话会提示缺少MSVCP100d.dll,这个dll是什么呢,这个dll是属于支持VS2010部分的,所以,我们需要找到MSVCP100d.dll这个文件,你可以从网上搜索,也可以直接从装有VS2010的电脑上直接复制一份。然后把MSVCP100d.dll复制到system32目录下,并注册,重新运行程序,不会再提示缺少MSVCP100d.dll,但是又出现了一个问题,缺少MSVCR100d.dll,同样,和上面步骤一样,注册好之后再一次运行程序,恭喜你,这次可以了。
http://www.verydemo.com/demo_c131_i4072.html,这是VS2012+OpenCV243的配置,里面有提到上述问题,虽然网页是英文的,但是都很简单,读完就理解了。
笔者的第一次配置环境就是这样的,VS2012+OpenCV243,搞了好几天才搞定,我是把所有出现的情况都设置了,包括cmake,包括各种路径,包括把1.0和243的dll都复制到system32下,当然也包括上述所说到的MSVCP100d.dll和MSVCR100d.dll,最后也是稀里糊涂的配置好了,根本不知道那些配置都是干什么的。
可是,后来笔者实验室换了电脑,笔者装了64位的系统,再一次进行配置,同样出现了以上问题,最后也是把MSVCP100d.dll和MSVCR100d.dll复制到system32,但是这次却不行了,提示MSVCP100d.dll的版本不兼容,这是因为我的系统是64位的,上次的dll不能用,这下郁闷了。后来无意间发现OpenCV244正式支持VS2012,于是,我果断换了OpenCV244,然后把那四个地方都配置好了,一次就能运行了,没有提示MSVCP100d.dll和MSVCR100d.dll的问题。
在这里说一下系统的位数问题,其实,OpenCV完全不用考虑系统位数问题,因为它里面都带着了x86(32位)和x64(64位),主要是VS安装文件的位数问题,如果你的VS安装文件是32位的,那你就按32位的来配置,即选择x86的文件,和你的电脑系统是多少位的没有关系,即使你的系统是64位的,但是它肯定是向下兼容32位的,如果VS的是安装文件64位的,就选择x64的文件。如果你的电脑系统是32位的,那就只能装32位的VS了,它是不能向上兼容的。
所以,综上,如果说OpenCV的版本是最新的,即244,那么无论你是什么版本的VS,只要按步骤配置都没有什么问题,但是如果不是最新的,即OpenCV244,同时你的VS又是最新的2012,那么就会出现上述的问题。所以比较好的方法就是装最新的OpenCV,使用比较老的VS,比如说VS2005,2008或者2010,而且,我们大可不必担心OpenCV什么时候不再支持老版本VS,像忽略支持VC++6.0那也是在很长一段时间之后才不再支持的。
笔者没有VS2012和OpenCV244的下载链接,如果大家有需要的可以向笔者索要,包括MSVCP100d.dll和MSVCR100d.dll。
好了,以上就是本教程的全部内容,系统地讲了VS和OpenCV配置的问题。如果大家以后在配置工作环境这一块有什么问题,我能解决的尽量帮助。很荣幸也很开心能够得到冷月哥的赏识,提升我为YY群的管理员,既然成为了管理员,也有了一定的责任,这算是自己为计算机视觉群尽的一点绵薄之力吧。另外,感谢广州-M-伍兄和长春|F-舞雨妹子提示我作这样一个教程。最后,祝大家生活快乐,学习进步。
FreeBamb
2015年11月7日
转载请注明出处。
不同OpenCV版本和不同VS版本之间进行配置的注意事项的更多相关文章
- Ubuntu下OpenCV不能被某个python版本识别
Ubuntu下OpenCV不能被某个python版本识别 Solution: 可以进入相应版本的python,查看该python的path: python import sys print(sys.p ...
- 【RMAN】RMAN跨版本恢复(下)--大版本异机恢复
[RMAN]RMAN跨版本恢复(下)--大版本异机恢复 BLOG文档结构图 ORACLE_SID=ORA1024G 关于10g的跨小版本恢复参考:http://blog.chinaunix.net/u ...
- Spring Boot版本,Spring Cloud版本与组件版本关系
我们在学习Spring Cloud时,可能总是碰到以下问题: 1.Spring Boot版本与Spring Cloud版本关系 2.启动时,报莫名其妙的错,稀里糊涂的换个版本就好了 3.这么多版本,用 ...
- 高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000
生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4 需求:迁移部分表 11.2.0.3-->10.2.0.4,若 ...
- 高版本api在低版本中的兼容
直接上例子,看如何避免crash. eg:根据给出路径,获取此路径所在分区的总空间大小. 文档说明:获取文件系统用量情况,在API level 9及其以上的系统,可直接调用File对象的相关方法,以下 ...
- 怎样去除SVN中的某个版本之前的所有版本
地狱门神 在某些时候,我们可能需要一个存放二进制文件的SVN库,用来保存每日构建的结果等.但是这种库会趋于越来越大,最后会占用很多磁盘空间.这时我们会想到能不能删掉某个版本之前的所有版本,以节省磁盘空 ...
- SQL Server 2000 sp2 及更低版本不受此版本的 Windows 支持
SQL Server 2000 sp2 及更低版本不受此版本的 Windows 支持.在安装了 SQL Server 2000 之后请应用 sp3. 出现这种现象的原因在于:Windows Serve ...
- 如何让VMware低版本运行VMware高版本创建的虚拟机
如何让VMware低版本运行VMware高版本创建的虚拟机 问题描述: 本机安装的VMware Workstation是10版本,之前VMware Workstation 11版本创建的虚拟机,在运行 ...
- PHP有两个不同的版本:4.x系列版本和5.x系列版本
在为用户提供动态内容方面,PHP和MySQL是一个强大的组合.这些年来,这两项产品已经跨越了它们最初的应用舞台,现在,一些世界上最繁忙的网站也在应用它们.虽然它们当初都是开源软件,只能在UNIX/Li ...
随机推荐
- (转)IIS tomcat共用80端口解决一个IP多个域名:使用Nginx反向代理方式使两者兼容
from :http://www.cnblogs.com/wuyou/p/3455619.html 环境: windows server 2003,IIS6服务器,Tomcat7服务器 域名有几个: ...
- jdbc驱动jar导入eclipse
在使用JDBC编程时需要连接数据库,导入JAR包是必须的,导入其它的jar包方法同样如此,导入的方法是 打开eclipse 1.右击要导入jar包的项目,点properties 2.左边选择java ...
- 定制AIX操作系统的shell环境
操作系统与外部最主要的接口就叫做shell.shell是操作系统最外面的一层.shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的操作系统的输出结果. shel ...
- 正则表达式 获取字符串内提取图片URL字符串
#region 获取字符串内提取图片URL字符串 /// <summary> /// 获取字符串内提取图片URL字符串 /// </summary> /// <param ...
- matplotlib模块之子图画法
一般化的子图布局 首先要创建各个子图的坐标轴,传入一个四元列表参数:[x,y,width,height],用来表示这个子图坐标轴原点的x坐标.y坐标,以及宽和高.值得注意的是,这四个值的取值范围都是[ ...
- Python中的条件选择和循环语句
一.条件选择语句 Python中条件选择语句的关键字为:if .elif .else这三个.其基本形式如下: if condition: block elif condition: block ... ...
- INSPIRED启示录 读书笔记 - 第11章 评估产品机会
市场需求文档 大多数的公司产品选择权是由高管.市场部门.开发团队甚至是大客户,在这种情况下公司会跳过市场需求文档或是误写成产品规范文档,回避评估产品机会 在正常情况下,应该是由业务人员会撰写一份论证产 ...
- mongoDB中批量修改字段
// 为每一个文章文档新增一个image_count字段,用于记录此文章包含的图片个数 db['test.articles'].find({'title':'wfc test'}).forEach( ...
- asp.net web api history and how does it work?
https://blogs.msdn.microsoft.com/zxue/2012/11/07/what-is-asp-net-web-api-and-how-does-it-work/ https ...
- processing学习整理---Image
1.Load and Display(加载与显示) Images can be loaded and displayed to the screen at their actual size or ...