????? 這個問題糾結了很久,其實是個很簡單的問題,但是在鏈接OpenCV靜態庫的時候出現了一點小錯誤,所以一直沒有成功在其它機器上正常運行。現在解決了,所以記錄下來,讓一些剛入門的兄弟能夠不重蹈覆轍。為了講述方便,先介紹一下運行環境:OpenCV2.0+vs2005,OpenCV2.0的安裝路徑為c:\opencv2.0。
????? 成功編譯運行基于OpenCV庫的應用程序所需要的vs2005設置:
一、引用靜態鏈接庫
有兩種方法:
???? 1.在vs2005的"項目"-"(項目名)屬性"-"配置屬性"-"鏈接器"-"輸入"-"附加依賴庫"中根據release(或debug)配置屬性添加相應的靜態鏈接庫,release狀態就添加cv200.lib,cxcore200.lib,highgui200.lib,debug狀態就添加cv200d.lib,cxcore200d.lib,highgui200d.lib。
???? 2.不用再附加依賴庫中添加靜態庫,只需要在代碼文件中(如:stdafx.h)中添加
?
二、設置動態鏈接庫的引用路徑
????? 在我的電腦上,動態鏈接庫或者靜態鏈接庫只需引用其中一個就行,所以這個引用路徑不需配置也可以。不過也有人不設置這個路徑就會無法正確配置并運行應用程序,所以最好在ide中設置好動態鏈接庫的引用路徑。也有兩種方法:
????? 1.在"工具"-"選項"-"項目和解決方案"-"VC++目錄"中在右上角的"顯示一下內容的目錄"組合框中選擇"可執行文件",在這里依次添加兩行,并選擇OpenCV2.0的動態鏈接庫的位置如:c:\opencv2.0\bin\release和c:\opencv2.0\bin\debug
????? 2.在計算機的系統環境變量中的"Path"這個變量添加OpenCV2.0的動態鏈接庫的位置,如:c:\opencv2.0\bin\release;c:\opencv2.0\bin\debug
三、設置OpenCV庫頭文件的包含路徑
????? 在"工具"-"選項"-"項目和解決方案"-"VC++目錄"中在右上角的"顯示一下內容的目錄"組合框中選擇"包含文件",在這里依次添加兩行,并選擇OpenCV2.0的頭文件的位置如:c:\opencv2.0\include\opencv
????? 到此就可以成功編譯和運行基于OpenCV的應用程序了。
????? 要想在其它機子上運行自己的人臉檢測系統,得把haarcascade_frontalface_alt.xml放到應用程序的所在目錄,并且在代碼中修改加載分類器的路徑,可以用GetModuleFileName方法獲得路徑,然后重新編譯一遍代碼,再把動態鏈接庫的文件cv200.dll,cxcore200.dll,highgui200.dll拷貝到應用程序的目錄下面,如果對方機子沒有裝Visual c++ 2005 redistribute,則必須為對方安裝Visual c++ 2005 分發包或者將MFC動態庫(C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86路徑下的Microsoft.VC80.MFC和Microsoft.VC80.CRT目錄中的動態鏈接庫)全部拷貝到應用程序所在目錄。至此把這些文件所在的文件夾拷到對方機子上就能夠正常運行了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
