http://www.nmtree.net/2014/03/19/windows_build-opencv-with-cmake-and-vs2013.html
2014
獲取OpenCV有兩種途徑,一是預編譯好的庫,二是下載源代碼自己編譯。OpenCV官網(wǎng)http://opencv.org/提供
下載的OpenCV既包含編譯好的庫,也包含源代碼。通過(guò)OpenCV官網(wǎng)右上角的彩帶,可以獲取托管在GitHub上的OpenCV最新源代碼。本篇博文就是利用CMake和VS2013編譯GitHub上獲取的最新源代碼。
先來(lái)說(shuō)一下自己編譯的好處。
- 由于獲取的是最新源代碼,所以可以在OpenCV發(fā)布某個(gè)版本之前利用集成進(jìn)來(lái)的高級功能;
- 自己編譯可以在程序調試時(shí)跟蹤源碼;
- 預編譯的庫不包含一些功能,比如TBB,如果想使用這些功能只能自己動(dòng)手了。
總之,應了那句俗話(huà):自己動(dòng)手,豐衣足食。
編譯源代碼用到的工具包括:VS2013、CMake、Git工具(TortoiseGit),TBB(如果需要包含進(jìn)來(lái)的話(huà))。
一、使用CMake生成VS2013的OpenCV解決方案
- 利用TortoiseGit獲取最新的OpenCV源代碼,放在C:\OpenCVLatest。
- 在OpenCVLatest目錄下新建目錄build\vs2013x64,用于放置生成的解決方案和編譯好的庫。
- 打開(kāi)CMake,在Where is the source code后面的文本框選擇OpenCV的源代碼,Where to build the binaries選擇第2步新建的文件夾vs2013x64,如下圖所示:
- 點(diǎn)擊“Configure”按鈕,在彈出的對話(huà)框中,選擇“Visual Studio 12 Win64”,使用默認的本地編譯器,如下圖所示:
- 點(diǎn)擊“Finish”之后,等待配置完成,如下圖所示:
- 找到WITH_TBB,勾選:
- 再次點(diǎn)擊“Configure”按鈕,配置完成出現紅色標記,修改TBB_INCLUDE_DIRS的Value為:C:\OpenCVLatest\tbb42_20140122oss_win\tbb42_20140122oss\include
- 再次點(diǎn)擊“Configure”按鈕,會(huì )出現如下所示:
- 這個(gè)地方需要注意一下,因為生成的Value值到intel64,這里需要修改為intel64/vc12,對應vs2013,如下圖所示:
- 再次點(diǎn)擊“Configure”按鈕,這時(shí)就沒(méi)有紅色標記出現了,點(diǎn)擊“Generate”按鈕,生成OpenCV的解決方案。
二、VS2013編譯OpenCV解決方案生成庫
- 打開(kāi)OpenCV的解決方案,右擊CMakeTargets下的INSTALL,選擇“生成”,生成Debug版的dll和lib,如下圖所示:
- 修改配置為“Release”,重復步驟1,生成Release版的dll和lib,如下圖所示:
- 生成完畢,在OpenCV解決方案下的install文件夾里就有了dll,lib和h頭文件了。
- 雖然生成了庫文件了,如果可以Debug跟蹤源碼,還得保留OpenCV解決方案。
三、生成過(guò)程中遇到的錯誤
通過(guò)CMake生成解決方案的過(guò)程中由于不仔細,導致后面生成時(shí)遇到了一些error LNK1104錯誤,比如說(shuō)無(wú)法打開(kāi)opencv_core300d.lib,無(wú)法打開(kāi)tbb_debug.lib之類(lèi)。原因就是在指定的目錄找不到這些文件,其實(shí)出現這些問(wèn)題的根本原因是在配置TBB的時(shí)候配置錯了,必須在intel64后面加上那個(gè)vc12,否則找不到。通過(guò)查看附加庫目錄就可以知道配置的是否正確,如下圖所示:
四、結束語(yǔ)
本篇博文,到此就結束了。對于想學(xué)習OpenCV,對計算機視覺(jué)有興趣的朋友,動(dòng)手編譯自己的OpenCV庫,應該是一個(gè)不錯的開(kāi)始。對文章中出現的不足和錯誤,歡迎指正。
如果本篇文章對你有所幫助,煩請掃描下方二維碼關(guān)注一下我的公眾號“程序旅途”
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。