您的位置:首页 > 运维架构

恢复软件环境时遇到的关于opencv的几个错误

2016-04-13 23:07 369 查看

问题背景

最近导师给了一个软件让我恢复,是前几任师兄写的,但是由于之前写软件的机器系统坏了,不得已重装系统,所以之前的环境都没了,恢复环境也是一波三折,之前没搞过这么大的工程,现在基本算是搞定了中间碰到的问题主要有这几个:

1. opencv 2.4.4与opencv 2.3.1并存时出的错:

由于之前自己配置过VS2010+opencv 2.4.4,配置方法是新建工程,然后打开属性管理器进行配置,这样做的好处是配置一次,以后其他工程就可以继续使用了。 这次给我的程序用的是opencv 2.3.1,为了先恢复出来,所以按照原程序的版本来,又进行了VS2010+opencv 2.3.1的配置,这种情况下,一直出很奇怪的错,后来发现,在生成的时候,会链接opencv 2.4.4而不是opencv 2.3.1 后来把opencv 2.4.4的相关库和包含目录删掉之后去掉了一部分错误。

2. 出现了奇怪的错误,错误提示忘了。最终是这样解决的:在C/C++ -> General -> Additional Include Directories(C/C++–>常规—>附加包含目录)里添加包含文件。这两者都是包含目录,有什么区别呢,搜到这篇文章VS中C++的包含目录、附加包含目录和库目录和附加库目录的区别 我觉得说的还算清楚。见下面图1和图2





我们一般使用C/C++和Linker下面的设置,而一般不建议使用VC++下面的设置。

3. 在链接器–>输入–>附加依赖项release版本的lib文件和debug版本下的lib文件导致的问题:

可以从图3中看到看到,此时带d的lib和不带d的lib同时存在。



运行程序时会出现下面的错误:



Windows 已在 Vessel.exe 中触发一个断点。

其原因可能是堆被损坏,这说明 Vessel.exe 中或它所加载的任何 DLL 中有 Bug。

原因也可能是用户在 Vessel.exe 具有焦点时按下了 F12。

输出窗口可能提供了更多诊断信息。

找了很长时间最终的解决办法是去掉不带d的lib,release版本和debug版本要分开配置

设置完毕后要重新生成一次
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: