让opencv程序在没有安装opencv的电脑上运行
经常需要把用opencv写的程序拿到没有装opencv的电脑上去运行和演示,要让opencv程序脱离opencv环境,一般有两种方法:
一种是动态链接opencv,即把相应的dll拷贝到exe所在目录,然后一起拿到目标电脑上去运行;另一种是将相应dll中的函数打包进exe,然后直接拷贝exe到目标电脑上去运行,即静态编译。
这里以VS2008+opencv2.4.6编写的win32控制台程序为例介绍静态编译的步骤:
1. 将opencv安装目录\build下的include文件夹拷贝到当前工程目录下,重命名为opencv_include;
2. 将opencv安装目录\build\x86\vc9下的staticlib文件夹拷贝到当前工程目录下,重命名为opencv_lib;

3. 在VS左侧的目录树中右键项目名称,选择“属性”,在“配置属性”->“C/C++”->“常规”->“附加包含目录”中添加opencv_include目录。

4. 在“连接器”->“输入”->“附加依赖项”里添加相应的lib文件,debug版添加带d的lib,release版添加不带d的lib。
//win32控制台程序需要的lib
vfw32.lib
comctl32.lib
//opencv用到的第三方lib
.\opencv_lib\libjasperd.lib
.\opencv_lib\libjpegd.lib
.\opencv_lib\libpngd.lib
.\opencv_lib\libtiffd.lib
.\opencv_lib\zlibd.lib
//opencv各模块的lib
.\opencv_lib\opencv_calib3d246d.lib
.\opencv_lib\opencv_contrib246d.lib
.\opencv_lib\opencv_core246d.lib
.\opencv_lib\opencv_features2d246d.lib
.\opencv_lib\opencv_flann246d.lib
.\opencv_lib\opencv_gpu246d.lib
.\opencv_lib\opencv_haartraining_engined.lib
.\opencv_lib\opencv_highgui246d.lib
.\opencv_lib\opencv_imgproc246d.lib
.\opencv_lib\opencv_legacy246d.lib
.\opencv_lib\opencv_ml246d.lib
.\opencv_lib\opencv_nonfree246d.lib
.\opencv_lib\opencv_objdetect246d.lib
.\opencv_lib\opencv_photo246d.lib
.\opencv_lib\opencv_stitching246d.lib
.\opencv_lib\opencv_ts246d.lib
.\opencv_lib\opencv_video246d.lib
.\opencv_lib\opencv_videostab246d.lib
5. 在“C/C++”->“代码生成”->“运行时库”中,debug版选择MTd,release版选择MT。

以上设置完成后,编译即可。
PS:
1. 通常include和lib还可以在VS2008的“工具”->“选项”->“项目和解决方案”->“VC++目录”的“包含文件”中进行设置,但这样的设置是保存在VS2008中,而不是当前工程中,如果将整个工程拷贝到别的电脑上,还需要再次设置才能正确编译。而这里介绍的方式则不用再配置,可以直接修改和编译。
2. 这里使用了相对路径,其中“.”表示当前目录,“..”表示当前目录的上级目录。
3. opencv早一点的版本中可能并没有包含已经编译好的lib,所以需要自己编译。
4. 在使用opencv读avi文件时,发现cvCreateFileCapture总是返回空指针,研究半天才发现是因为opencv_ffmpeg.dll没有正确加载。opencv_ffmpeg.dll并没有相应的lib,所以仍然需要将该dll拷贝至工程目录下编译和运行。
让opencv程序在没有安装opencv的电脑上运行的更多相关文章
- 关于C++编译的程序无法在新一台电脑上运行总结
最近在调用一个SDK调试一个主板的DPIO. 可是编译好的程序在开发电脑上运行没问题,到了新主板建立的电脑系统上就出问题. 总结了下要注意一下几方面. 1:程序本身要没有问题.至少在开发电脑系统环境下 ...
- 【OpenCV第一篇】安装OpenCV
[OpenCV第一篇]安装OpenCV 本篇主要介绍如何下载OpenCV安装程序,如何在VS2008下安装配置OpenCV,文章最后还介绍了一个使用OpenCV的简单小例子. <OpenCV入门 ...
- 如何在其他电脑上运行VS2005编译的DEBUG版应用程序
做项目的过程中,遇到这样的问题:在自己的电脑上用VS2005编译好的DEBUG版程序在其它的没有安装VS2005的电脑上没有办法运行,郁闷至极啊. 直 接拷贝文件后,错误信息如下:"This ...
- 编写简单的Mapreduce程序并部署在Hadoop2.2.0上运行
今天主要来说说怎么在Hadoop2.2.0分布式上面运行写好的 Mapreduce 程序. 可以在eclipse写好程序,export或用fatjar打包成jar文件. 先给出这个程序所依赖的Mave ...
- OpenCV 学习笔记 01 安装OpenCV及相关依赖库
本次学习是基于Window10进行的.语言为python3. 1 与opencv相关的库简介 1.1 numpy numpy 是 OpenCV 绑定 python 时所依赖的库,此意味着numpy在安 ...
- 如何生成能在没有安装opencv库及vs2010环境的电脑上运行的exe文件
项目基本算法已经完成,甲方需要一个可以运行的demo.目前,程序能在自己的电脑上正常运行.移植到其他win7系统上,运行失败. 寻找各种解决办法,baidu找到两个办法: 1.使用静态链接的方法,这种 ...
- 史上最详细版!java文件打包成exe,在未配置安装JDK和未配置的电脑上运行--转载
原文地址:http://funine.iteye.com/blog/2220359 (本文所有素材将在文章最后附上) 准备工具exe4j, converticon.com(用于制做.ico格式的图片) ...
- VS2008生成的程序无法在其它电脑上运行,提示系统无法执行指定的程序
经过一番查找,最给力的参考是 http://www.cnblogs.com/visoeclipse/archive/2010/02/27/1674866.html ------------------ ...
- 【Qt开发】【Linux开发】Qt程序在嵌入式设备(arm) 上运行,鼠标擦除界面的解决方案
笔者最近想在arm开发板上,开发一个应用程序,经过网上查询发现qt作为跨平台开发软件很不错,于是便选择了qt开发,笔者的qt版本是4.8.6的.由于arm的主频太低,在arm上进行开发编译,效率会大大 ...
随机推荐
- shell的date日期循环方法:日期格式转时间戳计算,再将时间戳转回日期格式
1,日期对象转时间戳current_day 2,计算增量的时间戳,即循环每步的增量one_day 3,循环体计算,日期变量加增量后重新赋值自己 4,时间戳转回日期格式后输出 current_day=2 ...
- 发现----Android Demo
时间悄悄的走,转眼来实习已经三个月了,三个月的时间,小编慢慢的成长着,从刚开始的电商项目到现在的车段子项目,小编在走过一个又一个项目的同时,走过了一个又一个战胜自己的奇迹,每次遇到一个新的技术点,小编 ...
- iOS开发之音频播放AVAudioPlayer 类的介绍
主要提供以下了几种播放音频的方法: 1. System Sound Services System Sound Services是最底层也是最简单的声音播放服务,调用 AudioServicesPla ...
- [python] 带有参数并且传递参数的装饰器
场景时这样的,我有个一大堆任务,我要给这些任务计时,入库.就需要一个带有参数的装饰器来记录任务名称, 在任务执行前和执行之后都需要记录任务当时执行的时刻. #-*- encoding=utf-8 -* ...
- 关于tomcat中Servlet对象池
Servlet在不实现SingleThreadModel的情况下运行时是以单个实例模式,如下图,这种情况下,Wrapper容器只会通过反射实例化一个Servlet对象,对应此Servlet的所有客户端 ...
- UNIX网络编程——产生RST
产生RST的3个条件:1. 建立连接的SYN到达某端口,但是该端口上没有正在监听的服务. 如:IP为192.168.1.33的主机上并没有开启WEB服务(端口号为0x50),这时我们通过IE去访问 ...
- EBS的性能调优
metalink Tuning performance on eBusiness suite (Doc ID 744143.1) 这篇文档描述了如何调查电子商务套件的整体性能下降. ...
- 15个易遗忘的java知识点
1.java中的基本数据类型以及所占内存大小 (1)整形 byte 1字节 short 2字节 int 4字节 long 8字节 (2)浮点型 float 4字节 double 8字节 ...
- DB 查询分析器 6.04 在 Windows 10 上的安装与运行展示
DB查询分析器 6.04 在 Windows 10 上的安装与运行展示 中国本土程序员马根峰(CSDN专访马根峰:海量数据处理与分析大师的中国本土程序员 http://www.csdn.net/art ...
- TensorFlow安装配置,茫茫人海中一瞥
深度学习的框架,我们熟知的有caffe,torch和convnet.最近,Google又搞了一个TensorFlow,已经开源:http://www.tensorflow.org/.据说,谷歌的深度学 ...