1. 程式人生 > >*.exe觸發了一個斷點--opencv人臉檢測

*.exe觸發了一個斷點--opencv人臉檢測

*.exe觸發了一個斷點–opencv人臉檢測

利用opencv進行人臉檢測,遇到一個十分不解的問題,每次程式退出都會觸發斷點,單步除錯無數次根本沒用,最後偶然得以解決,記錄在此,防止後來者踩坑。

事情發生在女朋友的電腦上,她之前裝的vs2010,然後我給她推薦vs2013,就裝上vs2013,但是她的C盤太小,空間不夠,就使勁刪,把2010也給解除安裝了,並且刪了一大堆東西。。哎,C盤空間大,之後的什麼麻煩都可以跳過啊!!好不容易裝好後,最簡單的helloworld都不能執行,不知道把什麼依賴庫給刪了,自己對著我電腦上的設定,一項一項給她對照設定,把vs的基本庫手動添加了一遍,然而事情過得有些時日了,並且亂七八糟的不記得了。。。你們若是遇到這樣的問題,最簡單的方法就是重灌了,總之她重灌很麻煩,,,所以這樣,,,然後我在我的電腦上寫了個人臉檢測的例程,跑的好好地,然後複製到她的電腦上,就出問題,每次退出都會觸發斷點,網上搜,大體是這樣的問題:
1、dll連結出問題
2、堆釋放出問題
但是我的電腦上和她連結的是同樣的opencv249裡面的dll,這個問題弄了好久好久,最後抱著試一試的心態,將檢測的語句遮蔽掉,然後執行,這時候出現有未解決的錯誤,然後我在呼叫堆疊哪裡發現,未載入opencv249core.dll,隱約發現問題所在,在我的電腦上同一個地方設定斷點,在呼叫堆疊裡面沒有這個資訊,更加確定問題出在這裡了,然後雙擊裡面的一個判斷opencv249core.dll的語句,發現給出的說明說在xx/opencv/build/x86/vc10/lib/opencv249core.dll,找不到,瞬間明白,是環境變數連結到vs2010對應的opencvdll版本(因為之前裝過vs2010也配置過opencv),然後之後配置vs2013的時候,之前的環境變數配置沒有刪掉,進去系統變數裡面看,在path中果然發現了之前配置opencv留下的路徑,刪除之,然後重啟,再次執行,問題解決。。。

心塞