由于研究生工作关系,用到了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进行打包即可。
1565



被折叠的 条评论
为什么被折叠?



