要给老师整理做过的算法各种脱离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,然后编译生成即可。