天天看點

opencv3.2.0+contrib3.2.0+cuda8.0經驗總結

1. cmake盡量不要選最新的版本,剛開始用3.8.1版本結果一直報錯,warning還是一堆亂碼,後來換成3.4.3 沒有亂碼了

2. 最開始編譯一直出錯,(最關鍵)提示的一條錯誤資訊為:找不到ws2_32.lib庫,不知道為什麼,檢視了下項目屬性庫目錄中的宏後,發現windows sdk 在8.1下,搜尋了下這個庫發現隻有在8.0下有,是以試着将8.0下的ws2_32.lib複制到8.1下,錯誤解決。

opencv3.2.0+contrib3.2.0+cuda8.0經驗總結

3.編譯時以為不用dnn這一項,本想盡量簡化編譯,因為我想用的其實是GPU和tracking子產品,是以沒有選這一項,同時也去掉了protobuf這一項,結果後面又是一堆錯誤,更傻逼的是,不加載dnn,tracking子產品就不會加載,坑爹!!!同時不加載protobuf,dnn子產品就編不過,最後發現要想編譯tracking子產品,先要編譯dnn,要想編譯dnn,必須編譯libprotobuf(即随手去掉的protobuf子產品),是以隻好重新加載。

4.編譯libprotobuf子產品時,又報錯:

錯誤 239 error C1083: 無法打開包括檔案: “winsock2.h”: No such file or directory (D:\OpenCV3\cmake\build\modules\dnn\3rdparty\protobuf\sources\protobuf-3.1.0\src\google\protobuf\util\time_util.cc)D:\OpenCV3\cmake\build\modules\dnn\3rdparty\protobuf\sources\protobuf-3.1.0\src\google\protobuf\util\time_util.h 4

本以為可以用2處的思路來解決,結果複制後,錯誤更多了。解決辦法:在libprotobuf右擊項目屬性,配置屬性–正常–平台工具集–改為:Visual Studio 2013 - Windows XP (v120_xp)解決!!!

然後依次編譯libprotobuf–dnn–tracking 即可,我之前别的部分都成功了,是以就基本搞定了。