可以使用opencv提供的靜態鏈接庫也可以自己編譯靜態鏈接庫.
1 使用opencv提供的靜態鏈接庫,位置如下圖.
首先設置VS配置.有如下幾個配置
1 工具->選項->項目和解決方案->VC++目錄->包含目錄.配置圖中的OpenCV243那3項.
2工具->選項->項目和解決方案->VC++目錄->庫文件
3 項目屬性->配置屬性->鏈接器->輸入->附加依賴項.把lib庫全部加入.
加入完是這個樣子
這里之所以要全部加如而沒有用哪個再加入哪個是由於全加入比較方便.屬於傻瓜配置.可以復制下面的.
這是debug的
IlmImfd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
opencv_calib3d243d.lib
opencv_contrib243d.lib
opencv_core243d.lib
opencv_features2d243d.lib
opencv_flann243d.lib
opencv_gpu243d.lib
opencv_highgui243d.lib
opencv_imgproc243d.lib
opencv_legacy243d.lib
opencv_ml243d.lib
opencv_nonfree243d.lib
opencv_objdetect243d.lib
opencv_photo243d.lib
opencv_stitching243d.lib
opencv_ts243d.lib
opencv_video243d.lib
opencv_videostab243d.lib
zlibd.lib
這是release的
IlmImf.lib
libjasper.lib
libjpeg.lib
libpng.lib
libtiff.lib
opencv_calib3d243.lib
opencv_contrib243.lib
opencv_core243.lib
opencv_features2d243.lib
opencv_flann243.lib
opencv_gpu243.lib
opencv_highgui243.lib
opencv_imgproc243.lib
opencv_legacy243.lib
opencv_ml243.lib
opencv_nonfree243.lib
opencv_objdetect243.lib
opencv_photo243.lib
opencv_stitching243.lib
opencv_ts243.lib
opencv_video243.lib
opencv_videostab243.lib
zlib.lib
Dbghelp.lib
我在設置工程中遇到了下面幾個問題
問題1如下
解決方法: 項目屬性->配置屬性->常規->MFC的使用. 設置為 “使用標准Windows庫”.
這個是因為靜態庫這個設置應該和你的項目設置一致.
問題2.提示下面的warning
這個warning 我采用 ##pragma warning(disable : 4996) ,但是去不掉.不知道為什么.當然你不能debug進入opencv源碼中. 所以后來我采用了下一種方法.
問題3: 提示找不到一些庫.如下圖
解決方法: 增加代碼 #pragma comment( lib, "vfw32.lib" ) 和 #pragma comment( lib, "comctl32.lib" )
2 自己編譯靜態鏈接庫.編譯完是下圖的樣子.
工具: cmake-gui.exe
具體方法我參考了這個博文http://blog.163.com/yuyang_tech/blog/static/21605008320147271503664/.
同樣還有圖.
要注意去掉BUILD_SHARED_LIBS.這樣生成的才是靜態庫.
工程設置只有下圖一點不同,庫文件路徑變了.注意要增加3rdparty庫這個路徑.
注: 解決問題是在網上找了不少解決方法,沒有方式感謝,就總結一篇博文把.好像右下角有推薦選項,你可以推薦一下.這是我在博客園的第二篇博客,大家支持支持吧.