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

来源:互联网 发布:电影特效知乎 编辑:程序博客网 时间:2024/06/07 18:46

由于研究生工作关系,用到了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.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_calib3d249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_contrib249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_core249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_features2d249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_flann249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_gpu249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_highgui249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_imgproc249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_legacy249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_objdetect249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_ts249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_video249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_nonfree249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_ocl249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_photo249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_stitching249d.libLIBS+=E:\opencv\build\x64\vc12\lib\opencv_superres249d.libLIBS+=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 ***.exepause  
其中,
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进行打包即可。

0 0
原创粉丝点击