恢復軟件環境時遇到的關於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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章