VS2015+opencv3+opencv_contrib+dlib配置過程和問題記錄
opencv3+opencv_contrib配置
編譯過程如上文所示,VS的配置過程如下(這裡包括opencv的配置和opencv_contrib的配置):
(我的opencv_contrib目錄跟上文不一樣)
1、配置包含目錄
在屬性頁,選擇左側配置屬性–>VC++目錄,編輯包含目錄,新增如下路徑:
2、編輯庫目錄,這裡可自行選擇編譯平臺,我選的release、x64,配置如下:
3、配置連結器輸入依賴項
這一步,我的C:\OpenCV3.2.0\opencv_contrib\win-install\x64\vc14\lib目錄下原本沒有上面的opencv_tracking320.lib檔案,如果不新增的話,專案編譯會報錯:
LNK2019:無法解析的外部符號 "public: bool cdecl cv::Tracker::init(class cv::Mat const &,class cv::Rect
dlib配置
主要參考Dlib機器學習筆記1 – Windows下的編譯安裝除錯(超詳細,菜鳥也成功)
配置完之後還遇到以下幾個問題:
1、USER_ERROR__inconsistent_build_configuration__see_dlib_faq_2
專案右鍵->新增現有項->新增dlib-all目錄下的source.cpp檔案
還有相關問題參考部落格:VS2015+DLIB19.10配置, dlib_faq_2和dlib_faq_1問題解決
2、新增上述檔案後,可能會出錯:找不到png.h
解決方法是定位錯誤發生的位置,將#include<png.h>改為靜態路徑#include"D:/ycc/dlib-19.15/dlib/external/libpng/png.h"
3、可能出錯:找不到jpeglib.h
配置屬性》c/c++》前處理器中的前處理器定義
新增DLIB_JPEG_STATIC
4、還可能出現一大串無法解析外部符號的錯誤
不知道這個錯誤的原因是什麼,之前是在控制檯用cmake編譯的dlib,發生如上錯誤,後來用cmake-gui+vs2015(也就是部落格
網上還有一些解決問題的偏方,試過才知不可信。現在多跳坑以後才能預見坑。