Opencv2.1+vs2008生成不依赖编译环境的exe文件

工作环境:

IDE:Microsoft Visual Studio 2008

Opencv版本:Opencv2.1

操作系统:Windows 7

 

    前言:之前为了能在没装vs2008和opencv的电脑上面运行自己写的opencv程序,真是花了九牛二虎之力,因为之前在网上查到的资料都是教你怎么生成opencv的静态库,比如http://blog.csdn.net/sophisticated/archive/2011/03/09/6234943.aspx这篇博客里面方法,我也不是说他的方法有错,只是我是用里面的方法生成那些库怎么都无法成功编译,都在链接那里出现error,还有就是vfw32.lib videoinput.lib这两个库文件是用这个博文的方法是无法生成的,由于多次尝试静态库未果,果断抛弃。后来我又上网找了一些资料,据说能用动态库来生成其他电脑上也能运行的opencv程序,下面我来详细说明。

 

    我们都知道,vs2008编译项目有两个版本:Debug和Release,这里我们在Release下生成exe文件,为什么要在Release下面生成呢,原因是你在Debug模式下生成的exe需要vs2008的一些Debug库文件支持,就是说你在没有vs2008的机子上是无法正常运行的,所以要在Release模式下面编译项目。

    步骤:

    1、把工程调成Release模式。

    2、右键项目->属性打开项目属性页面,首先在配置属性->常规页面,如果你是MFC程序,那在“MFC的使用”那选择“在静态库中使用MFC”。然后在配置属性->C/C++ ->代码生成页面,“运行时库”里面选“多线程(/MT)”。

    3、然后生成重新解决方案,生成了之后会在项目的Release文件夹下面看到一个exe文件和一个pdb文件(注意:这不是用静态库生成的)。

    4、打开opencv2.1的安装目录,在“安装路径”OpenCV2.1bin目录下将所有的Release版本的动态库文件拷贝到Release文件夹里面,跟exe文件放在一起。这样你的程序就可以在其他电脑上面运行了。

 

 

    小插曲:我运行的时候发现一个问题,Debug模式下生成的exe文件跟Release模式下生成的exe文件运行效果有可能不一样,我的原因是有些变量没有初始化,在Release模式下编译是经过优化的,有些没有初始化的变量就导致运行结果不一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值