基于OpenCV的程序脱离动态链接库运行方法 (此方法也可用于将opencv源码编译成一个链接库)

首先要明确在没有安装OpenCV的电脑上,要运行基于OpenCV库的程序,有两种方法:一、将OpenCv安装目录下的bin目录下的*.dll文件与应用程序一起打包发布。

二、将OpenCV库源代码加载到工程中和应用程序一起编译,也就是说最后生成的可执行文件可以单独运行,不需要OpenCV的动态链接库。下面将详细介绍这种方法。

 

首先要确定程序使用了OpenCV的哪些库函数,一般来说,cv、cxcore和highgui是必需的,为简化说明,下面将只编译这三个库,如果有使用其它库,同样也要加入。系统环境为:WindowsXP+VC6.0+OpenCV1.0。

1、  为方便管理,先将OpenCv安装目录下的cv、cxcore、otherlibs/highgui三个目录复制到你的工程目录。

2、  在集成开发环境的项目管理窗口中(FileView)新建两个文件夹,分别为opencv_src,opencv_include。

3、  在项目管理窗口中右击opencv_include项,选择Add Files to Folder...,将第1步中已复制至工程目录下的三个目录下的include目录中的.h文件添加到该项目管理文件夹中。接着按相同做法将三个目录下的src目录中的.cpp文件添加到opencv_src项目管理文件夹中。

4、  几点注意:dummy.cpp在三个目录下都有,只需要添加一次。Highgui目录下以cvcap开头的.cpp文件为摄像头相应库,如果你的程序没有处理视频,不要添加这些.cpp文件。不要添加window_carbon.cpp文件,原因还不明。

5、  右击opencv_src,选择Setting...,选择C/C++页,在Category选择Precompiled Headers,再选择下面四个单选项中的第一项”Not using precompiled headers”。这样做的目的是不使用编译头文件,否则会产生“找不到文件结尾”的错误。也可以在每个.cpp文件的开头加入include ”stdafx.h”,但显然没有更改一个选项来得方便。

6、  在Project->Settings...->C/C++中,选择Category中的Preprocessor项,把 Additional include directories改为cv/include,cv/src,highgui, cxcore /include, cxcore /src

7、  Project->Settings...->Link,如果Object/library modules中有cv.lib,cvaux.lib,highgui.lib,删除之。

posted @ 2012-08-31 22:30  Youf Leen  阅读(1623)  评论(2编辑  收藏  举报