小編用自身血淋淋的例子,來給大家做個參考,共耗時近2天時間,終於屈服於安裝vs2010,然后配置成功了。但是在這個配置成功后,我終於發現了我08配置不成功的原因,寫下心得,供各位參考
1.准備工具
vs2008安裝包 opencv2.4.9 壓縮包 CMake3.1.2(最新版就可以)
因為 opencv2.4.9 里面是 已經編譯好的源碼有 vc10 VC11 vc12 沒有vc09 所以,如果要裝opencv2.4.9 需要自己來編譯庫文件
所以,如果您是vs2010,您直接跳過CMAKE編譯步驟進行第2部即可
a。安裝vs2008(網上搜如何安裝,小編就不介紹了)
b。解壓縮opencv2.4.9到 D盤 生成目錄:D:\opencv-2.4.9\opencv
opencv文件夾里面,包含有兩個文件 一個是source 一個是build文件夾
c。在opencv-2.4.9文件夾里面創建一個文件夾 命名為:vs2008
這個時候 opencv-2.4.9里面就有2個文件夾了,一個是opencv,一個是vs2008
d。安裝CMake,然后打開CMake,在兩個要填入目錄的地址,路徑如下圖所示
配完后,點擊generate,讓其編譯,編譯結束后,會出現一片紅的,再點一次generate,再編譯一次,這次紅色就會消失,編譯就完成了。
然后打開vs2008,里面有一個sln后綴的解決方案,用vs2008打開該解決方案,打開后,先不要急着從新生成解決方案,先看一下,你需要用64位,還是32位,在編譯器欄里選擇一下!!
如果你找不到X64,點擊配置管理器,在里面選一下,在配置管理里面,平台哪里選擇編輯,編輯里面選X64,如果沒有,就可能是你沒有裝64位編譯器,在控制面板中選擇程序,卸載程序,找到vs2008,選擇卸載,然后在出來的界面里面,選擇添加新功能哪一項,最后在出來的功能選項里面,打開每一項,可以找到64位編譯器這一項,打個√,讓它安裝一下就可以了。
安裝完后,選擇從新生成解決方案。讓它編譯吧,編譯要好久好久,選Debug編譯一次,選release編譯一次。
e。完成編譯后,下面進入正題,開始配置,配置的時候務必注意一件事情,你的電腦是多少位系統,32位還是64位。
1.配置環境變量
計算機->(右鍵)屬性->高級系統設置->高級(標簽)->環境變量->(雙擊)path(用戶,系統里面的path任選其一)->在變量值里面添加相應的路徑。
對於32位系統,就添加:
”D:\opencv-2.4.9\opencv\build\x86\vc10\bin”
而對於64位系統,可以兩個都添加上:
”D:\opencv-2.4.9\opencv\build\x86\vc10\bin”
和”D:\opencv-2.4.9\opencv\build\x64\vc10\bin”,
然后,從新啟動電腦!!!很重要!!!
2.建立工程文件-win32控制台應用程序--》按下圖,盡量一個cpp文件,輸入測試程序。
界面如下,請注意紅色標示
3.配置庫文件+包含目錄+依賴項
vs2008 在項目屬性里面-》鏈接-》輸入,然后點擊編輯,但要注意下圖,左側針對 Debug,Release 要分別填入不同的內容,二右邊,win32,X64,要分別選一次,各配一次
輸入內容如下:(紅色標示是二者的區別,同時也是你opencv的版本號,不同版本,這里的數字不同!!!)
release:
opencv_core249.lib
opencv_highgui249.lib
opencv_video249.lib
opencv_ml249.lib
opencv_legacy249.lib
opencv_imgproc249.lib;
debug:
opencv_core249d.lib
opencv_highgui249d.lib
opencv_video249d.lib
opencv_ml249d.lib
opencv_legacy249d.lib
opencv_imgproc249d.lib;
然后在 工具-》選項-》vc++ 目錄里面,配置 包含文件,和庫文件,同樣要注意上面的選項,你是64位,選X64,你是32位 選X32
這里注意:如果你是vs2008 自己編譯的目錄,你的庫目錄要選擇添加這3個:
D:\opencv-2.4.9\vs2008\lib\Debug
D:\opencv-2.4.9\vs2008\lib\Release
D:\opencv-2.4.9\vs2008\lib
就是你編譯出來的那個lib文件,而不是選擇截圖中的,截圖中的是真的vs2010的。

完成以上這些配置之后,就完成了基本配置了,接下來就是重新生成解決方案,運行我們的樣例代碼,配置就完成了!!!
配置過程中可能會出現這樣那樣的問題,建議細心看每一個問題,找目錄,基本上多少配置的不完整造成的。