OpenCV学习笔记(三十一)——让demo在他人电脑跑起来
来源:互联网 发布:苹果手机网络权限设置 编辑:程序博客网 时间:2024/05/17 00:12
这一节的内容感觉比较土鳖。这从来就是一个老生常谈的问题。学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那里演示一下,一定要选择静态库使用mfc,而不是选择动态链接库,否则在人家电脑里没有对应的dll文件,是无法运行起来的。可见老师在这方面吃过亏啊。昨天用OpenCV写了个东西,发过去让人家测试,可人家告诉我:“你这土鳖程序在我这无法运行“,好囧啊。这里把我的解决过程记录一下。希望能对大家遇到类似的问题有所帮助。
首先,介绍一下我的开发环境32bits+winXP+VS2008+OpenCV,他的电脑32bits+Win7+none(他电脑其他开发环境基本没装,是个裸机)。
我程序里用到的库文件包括core、highgui、imgproc、video,用的是debug版本,写的是个控制台程序。所以把相应的dll文件copy过去,分别是opencv_core231d.dll、opencv_highgui231d.dll、opencv_imgproc231d.dll、opencv_video231d.dll(如果是release版本,要copy相应的没有d结尾的动态链接库,下面相应的dll都存在类似的问题)。本以为这样就ok了,第一次传给他,他告诉我运行不了,没有任何提示,用命令行运行,提示应用程序缺少相应的并行配置,百度出来的答案千奇百怪,感觉都没有切中要害。
于是又找了一台装的xp的电脑试验,这次弹出错误是缺少tbb_debug.dll,我忽然想起来我第一次运行程序的时候也是弹出过这个错误。于是根据电脑的配置是32位机,开发环境是vs9,找到对应目录下的tbb_debug.dll文件,copy过去,再试。
这次弹出的错误比较离奇,提示缺少msvcp100d.dll,可是大哥,我用的开发环境是vs2008,对应的文件应该是msvcp90d.dll才对吧(这个问题目前没想出合理解释),不管了,死马当活马医,又去别人电脑copy过来msvcp100d.dll和msvcr100d.dll,再试。
这次弹出缺少msvcp90d.dll了,呵呵,该来的还是会来。这是由于他的电脑没有vs平台运行时的对应dll造成的,网上搜了下解决办法。去C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT目录把Microsoft.VC90.CRT.manifest、msvcm90.dll、msvcp90.dll、msvcr90.dll四个文件都copy过来,又去C:\Program Files\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.OPENMP目录下把Microsoft.VC90.OpenMP.manifest、vcomp90.dll两个文件copy过去。
这次总算离胜利比较近了,不报错了,但是视频文件无法打开,感觉还是OpenCV相关的动态链接库没有copy过去,又copy了几个dll,比如opencv_ffmpeg.dll。这次总算可以运行了。oh yeah~~
问题是解决了,不过对于dll文件的理解还是不够深刻,网上还有说是因为运行时库的问题,需要在相关项目设置里把MDD设置为MTD,但我试过,发现不是这个问题。要是能有办法,像MFC那样把相应的dll进行静态编译,都做到exe里面就好了。不知道是我知之甚少,还是OpenCV的程序不行。期待高手指点一二。
感谢大家指导,我把心得又写了一篇http://blog.csdn.net/yang_xian521/article/details/7027190
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己
- MonoDroid学习笔记(二)—— 让你的App在你的手机上跑起来
- MonoDroid学习笔记(二)—— 让你的App在你的手机上跑起来
- 学习笔记(三十一)
- opencv学习笔记(三十一)基于块的反向投影
- javaScript学习笔记——如何让<canvas>动起来
- Swift学习笔记(三十一)——参数的默认值
- Oracle学习笔记(三十一)——oracle视图
- iOS开发学习笔记(二)—— 让图片“动”起来!
- JAVA学习笔记(三十一)
- 【OpenCV学习笔记】三十一、轮廓特征属性及应用(八)——颜色物体识别与跟踪
- 【C++】学习笔记三十一——函数和数组
- ThreeJS学习笔记(6)- 让场景动起来
- Cocos2d-x学习笔记(七) CCAction让你的精灵跑起来
- (三十一)C语言学习笔记(二)——函数与程序结构
- 软件工程视频学习笔记(三十一、二)
- 信息安全工程师 学习笔记(三十一)
- 二分查找算法
- LDAP的特定错误
- Java SE 6 新特性: Instrumentation 新功能
- 3D图形
- fedora8下mysql-standard-5.0.27-linux-i686安装
- OpenCV学习笔记(三十一)——让demo在他人电脑跑起来
- Gnu make手册学习【3】——编写makefile文件
- struts forward的path中带参数的配置方法
- Oracle 10g ORA-12154: TNS: could not resolve the connect identifier specified 问题解决!
- asp.net 字符替换 <: < >: > &: &
- 电脑的开机密码忘记了怎么打开
- Linux下IP冲突检测方法
- wince同步机制示例 飞凌视频
- SSL与CA