1. 程式人生 > >opencv脫離動態庫的靜態連結方法

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,然後編譯生成即可。