VS如何設置OpenCV靜態編譯


 

可以使用opencv提供的靜態鏈接庫也可以自己編譯靜態鏈接庫.

1 使用opencv提供的靜態鏈接庫,位置如下圖.

image

首先設置VS配置.有如下幾個配置

1 工具->選項->項目和解決方案->VC++目錄->包含目錄.配置圖中的OpenCV243那3項.

image

2工具->選項->項目和解決方案->VC++目錄->庫文件

image

3 項目屬性->配置屬性->鏈接器->輸入->附加依賴項.把lib庫全部加入.

image

加入完是這個樣子

clip_image008

這里之所以要全部加如而沒有用哪個再加入哪個是由於全加入比較方便.屬於傻瓜配置.可以復制下面的.

這是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如下

clip_image009

解決方法: 項目屬性->配置屬性->常規->MFC的使用. 設置為 “使用標准Windows庫”.

這個是因為靜態庫這個設置應該和你的項目設置一致.

image

問題2.提示下面的warning

clip_image012

這個warning 我采用 ##pragma warning(disable : 4996) ,但是去不掉.不知道為什么.當然你不能debug進入opencv源碼中. 所以后來我采用了下一種方法.

問題3: 提示找不到一些庫.如下圖

clip_image013

解決方法: 增加代碼 #pragma comment( lib, "vfw32.lib" ) 和 #pragma comment( lib, "comctl32.lib" )

2 自己編譯靜態鏈接庫.編譯完是下圖的樣子.

image

image

工具: cmake-gui.exe

具體方法我參考了這個博文http://blog.163.com/yuyang_tech/blog/static/21605008320147271503664/.

同樣還有圖.

image

要注意去掉BUILD_SHARED_LIBS.這樣生成的才是靜態庫.

工程設置只有下圖一點不同,庫文件路徑變了.注意要增加3rdparty庫這個路徑.

image

 

注: 解決問題是在網上找了不少解決方法,沒有方式感謝,就總結一篇博文把.好像右下角有推薦選項,你可以推薦一下.這是我在博客園的第二篇博客,大家支持支持吧.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM