opencv脫離動態庫的靜態連結方法
要給老師整理做過的演算法各種脫離OPENCV庫的可執行檔案,就又折騰起了靜態連結問題 ,現在來說說如果想要你的程式在一臺裸奔的電腦上執行,需要怎麼辦。
以OPENCV2.4.3+VS2010
第一種方法是粗暴的什麼都不改變然後將有可能用到的DLL都拷貝到資料夾中,這時候如需要opencv_highgui243.lib,是來自 opencv\build\x86\vc10\lib,以前使用這種方法,帶需要拷貝的DLL太多,比較麻煩。
第二種方法是採用OPENCV的靜態連結庫,我覺得很神奇,搜尋了一下,大家都在自己編譯靜態連結庫,但是其實OPENCV自己已經編譯好了靜態連結庫,就在 opencv\build\x86\vc10\staticlib中,只是和LIB中的opencv_highgui243.lib等名字相同,所以如果你並沒有修改過OPENCV的原始碼通過以下幾步快速配置靜態庫:
以RELEASE為例
(1)在Linker選項->General->Additional Library Directories選擇<Edit…>,刪去原來的“$(OpenCV2_4_3_Dir)\ lib”,然後在編輯框中輸入“$(OpenCV2_4_3_Dir)\ staticlib”後確定(這裡OpenCV2_4_3_Dir是環境變數是你安裝OPENCV的路徑,比如我的是D:\Study\OpenCV2.4.3\build_vc10)。
(2)在Linker選項->Input->Additional Dependencies選擇<Edit…>,然後在編輯框中輸入一下內容後確定:
vfw32.lib
comctl32.lib
zlibd.lib
libjasperd.lib
libjpegd.lib
libpngd.lib
libtiffd.lib
IlmImfd.lib
opencv_core243d.lib
opencv_imgproc243d.lib
opencv_highgui243d.lib
opencv_ml243d.lib
opencv_video243d.lib
opencv_features2d243d.lib
opencv_calib3d243d.lib
opencv_objdetect243d.lib
opencv_contrib243d.lib
opencv_legacy243d.lib
opencv_flann243d.lib
(3)專案屬性面板下-C/C++ /程式碼生成-/若是RELEASE選擇MT,若是DEBUG選擇MTD,然後編譯生成即可。