要求写好的调用OpenCV库的程序能够在没有安装OpenCV的机器上运行,这里做了测试
OpenCV 1.0, VS2005
打开OpenCV/_make下opencv.sln,
VS2005中生成,配置管理器中活动解决方案配置选择Release
将cv,cvaux,cxcore,highgui,ml项目属性中的常规选项,配置类型设置为静态库,并将输出目录设定好,最后生成的lib文件都会在这个文件夹中.字符集可能也需要设定,我设置成未设置,与我以后使用OpenCV的项目相同.
在cvaux项目中的cvaux.h文件中的1137行,后面的注释有个?/改成*/
将highgui项目属性,C/C++,预处理器,预处理器定义中的HAVE_PNG删掉,如果不删掉就需要静态png库,不过那个库好像有问题
重新生成解决方案后会得到cxcore.lib,highgui.lib,ml.lib,cv.lib,cvaux.lib
同样的打开D:/OpenCV/otherlibs/_graphics/src下的graphic_libs.sln,配置管理器设置为release,然后把每个项目的输出目录设置好,确认配置类型是静态库,
同时还需要设置项目属性,管理员,常规中的输出文件,改为$(OutDir)/$(ProjectName).lib即可
同样的重新生成解决方案以后就可以了
可能还需要一个libjasper.lib,这个我是从网上下了CxImage中找出来了生成了libjasper.lib
然后是简单的程序测试:
在工具,选项,项目和解决方案,VC++目录中包含文件按照opencv的配置加入相关的头文件目录
加入刚才生成的lib文件
#pragma comment(lib, "OpenCV_lib/cxcore.lib")
#pragma comment(lib, "OpenCV_lib/cv.lib")
#pragma comment(lib, "OpenCV_lib/libjpeg.lib")
//#pragma comment(lib, "libpng.lib")
#pragma comment(lib, "OpenCV_lib/libtiff.lib")
#pragma comment(lib, "OpenCV_lib/libjasper.lib")
#pragma comment(lib, "OpenCV_lib/highgui.lib")
#pragma comment(lib, "OpenCV_lib/ml.lib")
#pragma comment(lib, "OpenCV_lib/cvaux.lib")
如果是win32的程序可能还需要加入
#pragma comment(lib, "vfw32.lib ")
#pragma comment (lib , "comctl32.lib")
根据需要可能还需要忽略libcmt库
编出来的程序可以放到其他电脑上试试 :)