OpenCV 独立运行静态库编译

来源:互联网 发布:p2p风控程序员 编辑:程序博客网 时间:2024/05/21 10:21

要求写好的调用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,然后把每个项目的输出目录设置好,确认配置类型是静态库,

image

同时还需要设置项目属性,管理员,常规中的输出文件,改为$(OutDir)/$(ProjectName).lib即可

image

同样的重新生成解决方案以后就可以了

可能还需要一个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库

编出来的程序可以放到其他电脑上试试 :)

0 0