关于opencv和vs2010的程序发布的几个问题

今天把多条鱼的行为观测程序拿给lab member去分析数据,之前也在其它机器上运行过该程序,没出现什么问题。

今天一台32位的win7和64位的win7运行,出现了一些问题,记录下来,总结经验。


1. 0xc000007b 错误 -- 32位的opencv程序在64位系统上的问题

    之前在调试其它cv程序的时候遇到过这种错误。引起该问题原因是因为win7里的directx版本没升级,将其升级后问题解决。

     (升级地址: http://www.microsoft.com/zh-cn/download/details.aspx?id=35)

    但这次不一样,程序中没用到dx技术。而且,我也进行了相应的升级后,问题依旧!

     同时也找出一些不同答案,可能是由tbb的dll调用引起的问题,详细参见下面的文章。

    ( http://blog.csdn.net/daiyuchao/article/details/7618572 )

    原因在于32bit的opencv程序所用的cv24*.dll会加载所有关联库,包括tbb.dll (tbb_debug.dll)。 系统就是自动寻找tbb.dll,但是在64位系统下,系统调用的是64位的tbb.dll。因此造成了不兼容的问题,这里就出现了 0xc000007b 错误。上面文章给的办法是先把tbb从系统路径中移除,但是把32位的tbb复制到相应位置。

    由于这机器也没安装过tbb,直接把32位的tbb复制到同一文件夹下问题就解决了。


2. vs2010运行库(runtime library)

     32位程序,在64位系统下运行,应该安装的vc 运行库是x86版,不是x64版!

     没安装运行库的机器上会出现缺少MSVCP100.dll的提示,一般来说安装运行库之后就可以解决问题。

     但装过之后又提示缺少MSVCP80.dll,让我觉得很异常。这个文件应该是以前版本的运行库里的。

     由于我的release版本是采用静态编译的,我怀疑这个问题可能与静态编译有关,或者跟前面的tbb有关系。

     把程序重新进行了动态编译后,又把tbb.dll复制过来,问题解决了。

      但是最终是什么原因造成的还没具体分析。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值