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

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

  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
    图1 VC++目录

图2 附加包含目录
我们一般使用C/C++和Linker下面的设置,而一般不建议使用VC++下面的设置。
3. 在链接器–>输入–>附加依赖项release版本的lib文件和debug版本下的lib文件导致的问题:
可以从图3中看到看到,此时带d的lib和不带d的lib同时存在。
附加依赖项

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

图4 错误信息

Windows 已在 Vessel.exe 中触发一个断点。
其原因可能是堆被损坏,这说明 Vessel.exe 中或它所加载的任何 DLL 中有 Bug。
原因也可能是用户在 Vessel.exe 具有焦点时按下了 F12。
输出窗口可能提供了更多诊断信息。

找了很长时间最终的解决办法是去掉不带d的lib,release版本和debug版本要分开配置
设置完毕后要重新生成一次

发布了34 篇原创文章 · 获赞 10 · 访问量 8万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章