由于公司现阶段开发环境为vs2005,后期陆续要转到vs2010,所以开发机同时装了两个IDE:
- WIN7下vs2005的兼容性问题解决
- opencv的配置流程
- 测试中出现的问题及解决方案
WIN7下vs2005的兼容性问题解决
开发机环境为win7sp1(32bit),装vs2005时会出现弹窗说有兼容性问题,我们需要再装如下两个补丁
VS80sp1-KB926604-X86-CHS.exe
VS80sp1-KB932230-X86-CHS.exe
补丁装完后,再次打开vs2005会提示管理员权限什么的,那就给,然后取消勾选,就可以畅通的使用了。
VS2010安装没有问题
opencv的配置流程
因为所用vs环境相对较老,所以没有使用最新版本的opencv,直接在网上下载别人编译好的2.40版本。链接在下边,需要积分,哈哈哈。
http://download.csdn.net/download/shuxiao9058/4270223
因为直接下载的别人的,所以不需要我们再下载cmake自己编译了,不过cmake还是一个比较好玩的工具,可以对同一代码生成不同版本的项目文件,让开发人员更专注于代码开发,不过对我们这些随时可能会根据需求增加源文件删除源文件的人来说,比较繁琐。故能不用就不用了。
接下来根据官网的流程,进行配置就可以了。大体为三步
1. 设置系统环境变量
这里是在path变量中添加bin目录,因为用到了tbb,所以也添加到里边去。接下来的问题出在这里
2. 在VS中为所有项目设置包含目录和库目录
这里没啥讲的,就是注意vs2010是需要先新建一个项目,在项目属性里添加。
3. 在所开发的项目添加依赖项
即所用到的lib,这是在链接时所用的,所以是静态的lib
注意分为debug和release两个版本。
测试中出现的问题及解决方案
1.使用vs2005进行测试debug版本是没有问题的,在vs2010中debug不能使用imread函数从文件中读取图片,发现问题是出在环境变量设置那里,因为系统查找库的步骤如下
可执行文件在运行时寻找和调用dll文件的路径搜索顺序。一般是:
A 可执行文件所在目录;
B 进程当前目录;
C 系统目录,%SystemRoot%/system32
D 16位系统目录;,%SystemRoot%/system
E Windows目录,%SystemRoot%/
F 环境变量PATH中的目录;
经检查发现我在填环境变量时,先填的vs2005版本的库,再填的是vs2010的库。这样顺序就出现问题了。2010的程序调的是2005的库,肯定会出现问题,这个问题解决方案是,用哪个添加哪个吧。笑哭~
2.发现在release版本也会出现tbb.dll问题
此问题的原因和第一个问题的原因类似,应该是tbb版本不对。参考其他博客发现系统文件夹下system32内也有一个tbb.dll。替换之或删除之,问题即可解决。
此处图片和部分文辞参考了如下博文,在此感谢作者的思路
http://blog.csdn.net/agassy/article/details/50492413