不同OpenCV版本和不同VS版本之间进行配置的注意事项
2017-04-08 15:22
489 查看
下面内容为不同系统和不同版本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,所以这样是不会出现版本不匹配问题的,只要按照步骤配置那四个部分就好了。
不同OpenCV版本和不同VS版本之间进行配置的注意事项
但是,如果你要配置的工作环境是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了,它是不能向上兼容的。
转载自:http://blog.sina.com.cn/s/blog_74f32c400101aecw.html
什么是版本不匹配呢,在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,所以这样是不会出现版本不匹配问题的,只要按照步骤配置那四个部分就好了。
不同OpenCV版本和不同VS版本之间进行配置的注意事项
但是,如果你要配置的工作环境是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了,它是不能向上兼容的。
转载自:http://blog.sina.com.cn/s/blog_74f32c400101aecw.html
相关文章推荐
- 不同OpenCV版本和不同VS版本之间进行配置的注意事项
- 不同OpenCV版本和不同VS版本之间配置时的注意事项
- 【OpenCV学习】在不同版本的VS下的配置方法
- vs在不同版本的opencv之间切换
- vs2013 项目属性配置的总结(主要用于opencv不同版本的管理)
- OpenCV学习——在不同版本的VS下的配置方法
- 【openCV】有关在VS2013上进行openCV配置的注意事项
- 关于在不同版本和平台之间进行还原或复制的常见问题
- 采用opencv_cascadetrain进行训练的步骤及注意事项
- [Android] 使用SVN进行版本控制的注意事项
- openssl在多平台和多语言之间进行RSA加解密注意事项
- 关于在不同版本和平台之间进行还原或复制的常见问题
- 编程经验:不同版本OpenCV之间并存可能引起的bug~
- ubuntu14.04下opencv+eclipse(ADT)的配置注意事项
- 使用VS配置管理器实现不同版本的输出
- opencv不同版本之间的互操作性
- qt下配置opencv环境注意事项
- (转)采用opencv_cascadetrain进行训练的步骤及注意事项
- Silverlight中,很多实例可以使用Xaml的方式进行配置实现的注意事项和原理
- SQL Server不同版本之间发布订阅的主意事项