您的位置:首页 > 编程语言 > Qt开发

QT5.6+opencv2.49+vs2015生成的exe可执行程序打包方法

2016-12-02 10:21 489 查看
由于研究生工作关系,用到了qt写界面,程序写好了,但是当exe文件拷贝出来到其他电脑上时总是提醒缺少各种dll文件,搞了半天,终于还是把exe文件打包好了,测试可以在室友们的电脑上正常运行。下面把相关步骤大致写一下。

环境:qt5.6(vs版本的),opencv2.49,vs2015

问题:因为qt已经集成到vs里面,而且opencv的环境在vs里面也已配置好,所以为了省事我先是直接打包vs在debug模式下生成的exe,各种出问题,各种缺少dll文件,无奈又在qtcreator中配置了一遍opencv(不过也很简单,几行代码的事儿)。

过程:1.在qtcreator中配置opencv。在 .pro文件中添加如下代码即可:

INCLUDEPATH += E:\opencv\build\include\
INCLUDEPATH += E:\opencv\build\include\
INCLUDEPATH += E:\opencv\build\include\

LIBS+=E:\opencv\build\x64\vc12\lib\opencv_ml249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_calib3d249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_contrib249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_core249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_features2d249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_flann249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_gpu249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_highgui249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_imgproc249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_legacy249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_objdetect249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_ts249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_video249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_nonfree249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_ocl249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_photo249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_stitching249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_superres249d.lib
LIBS+=E:\opencv\build\x64\vc12\lib\opencv_videostab249d.lib
其中E:是我opencv安装的根目录,改为自己解压的目录即可。.lib前面的d表示debug模式。如果release模式,则没有d。然后在主要用到opencv库的cpp文件前面加上:

#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include <opencv/cv.h>
using namespace cv;
即可。

2.debug模式下运行程序,生成exe。在桌面上新建文件夹,名字最好为英文或数字,将exe拷贝到文件夹中,在文件夹中新建一个txt,里面写上:

E:\Software\Qt5.6\5.6\msvc2015_64\bin\windeployqt.exe ***.exe

pause
其中,
E:\Software\Qt5.6\5.6\msvc2015_64\bin\
为你qt安装的相关目录,改为你自己的即可,***.exe是你qt生成的exe文件的名称。将文件后缀改为.bat。运行文件。这样就可以利用qt自带的windeployqt工具自动获得exe文件执行所需要的dll文件,并自动保存在刚才新建的文件夹中。

3.在刚才的新建文件夹中添加opencv和vs所需要的一些dll文件。最终应该是这样的:



之后就可以打包,可以用Enigma Virtual Box等工具对exe进行打包即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: