不同OpenCV版本和不同VS版本之間進行配置的注意事項


下面內容為不同系統和不同版本VS+不同版本OpenCV之間進行配置時的注意事項。本教程中開始提到如果VS版本和OpenCV版本相匹配的話,只要按上述步驟配置都是沒有問題的。但是如果說版本不匹配的話,就會出現問題。

    什么是版本不匹配呢,在D:\OpenCV244\opencv\build\x86,(不同解壓路徑位置不同)

vc9vc10vc11這三個東西,或許你會發現在OpenCV相應的目錄下是沒有vc11這個東西的,vc11是屬於VS2012的編譯器部分,也就是說在OpenCV243里是不正式支持VS2012的,在OpenCV244里才開始正式支持VS2012vc10則是屬於VS2010的編譯器部分,而無論是244還是243里面都有vc10,所以如果你用的是VS2012以下版本的話,是不會出現OpenCVVS不匹配的問題。網上的教程都是在VS2010下配置的OpenCV243,所以這樣是不會出現版本不匹配問題的,只要按照步驟配置那四個部分就好了。

 

    但是,如果你要配置的工作環境是VS2012,然后又是OpenCV243,如果你按步驟把四個部分都設置好了,那會出現什么問題呢,編譯是可以編譯的,但是在執行的話會提示缺少MSVCP100d.dll,這個dll是什么呢,這個dll是屬於支持VS2010部分的,所以,我們需要找到MSVCP100d.dll這個文件,你可以從網上搜索,也可以直接從裝有VS2010的電腦上直接復制一份。然后把MSVCP100d.dll復制到system32目錄下,並注冊,重新運行程序,不會再提示缺少MSVCP100d.dll,但是又出現了一個問題,缺少MSVCR100d.dll,同樣,和上面步驟一樣,注冊好之后再一次運行程序,恭喜你,這次可以了。

http://www.verydemo.com/demo_c131_i4072.html,這是VS2012+OpenCV243的配置,里面有提到上述問題,雖然網頁是英文的,但是都很簡單,讀完就理解了。

 

    筆者的第一次配置環境就是這樣的,VS2012+OpenCV243,搞了好幾天才搞定,我是把所有出現的情況都設置了,包括cmake,包括各種路徑,包括把1.0243dll都復制到system32下,當然也包括上述所說到的MSVCP100d.dllMSVCR100d.dll,最后也是稀里糊塗的配置好了,根本不知道那些配置都是干什么的。

 

   可是,后來筆者實驗室換了電腦,筆者裝了64位的系統,再一次進行配置,同樣出現了以上問題,最后也是把MSVCP100d.dllMSVCR100d.dll復制到system32,但是這次卻不行了,提示MSVCP100d.dll的版本不兼容,這是因為我的系統是64位的,上次的dll不能用,這下郁悶了。后來無意間發現OpenCV244正式支持VS2012,於是,我果斷換了OpenCV244,然后把那四個地方都配置好了,一次就能運行了,沒有提示MSVCP100d.dllMSVCR100d.dll的問題。

 

   在這里說一下系統的位數問題,其實,OpenCV完全不用考慮系統位數問題,因為它里面都帶着了x86(32)x64(64),主要是VS安裝文件的位數問題,如果你的VS安裝文件是32位的,那你就按32位的來配置,即選擇x86的文件,和你的電腦系統是多少位的沒有關系,即使你的系統是64位的,但是它肯定是向下兼容32位的,如果VS的是安裝文件64位的,就選擇x64的文件。如果你的電腦系統是32位的,那就只能裝32位的VS了,它是不能向上兼容的。

 

    所以,綜上,如果說OpenCV的版本是最新的,即244,那么無論你是什么版本的VS,只要按步驟配置都沒有什么問題,但是如果不是最新的,即OpenCV244,同時你的VS又是最新的2012,那么就會出現上述的問題。所以比較好的方法就是裝最新的OpenCV,使用比較老的VS,比如說VS20052008或者2010,而且,我們大可不必擔心OpenCV什么時候不再支持老版本VS,像忽略支持VC++6.0那也是在很長一段時間之后才不再支持的。

筆者沒有VS2012OpenCV244的下載鏈接,如果大家有需要的可以向筆者索要,包括MSVCP100d.dllMSVCR100d.dll

 

    好了,以上就是本教程的全部內容,系統地講了VSOpenCV配置的問題。如果大家以后在配置工作環境這一塊有什么問題,我能解決的盡量幫助。很榮幸也很開心能夠得到冷月哥的賞識,提升我為YY群的管理員,既然成為了管理員,也有了一定的責任,這算是自己為計算機視覺群盡的一點綿薄之力吧。另外,感謝廣州-M-伍兄和長春|F-舞雨妹子提示我作這樣一個教程。最后,祝大家生活快樂,學習進步。

                                                            FreeBamb

                                                       2015117

轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM