Qt creator 封装带图片的可执行文件

前言

经过大半天的折腾,终于将所需要的exe弄出来了。

期间查阅了大量资料,发现大多是简单的一个示例。。

只有一位博主简单说明了一下 带图片资源的操作方式

目的

在其他未配置过环境的window电脑上直接运行我们所写程序

环境与软件

Qt creator 5.11.1 mingw 32 bit

openCV库

kienct 库

Dependency Walker (查询程序所用库的软件) 下载传送门

Enigma Virtual Box(打包整个exe的软件) 下载传送门

初步生成.exe

(1)以release形式编译代码

初步生成exe

(2)在你项目放置同级目录下会生成对应的buildXXXXX文件-》release文件夹-xxx.exe

exe程序

自动拷贝所需dll

(1)将该exe单独放置在一个文件夹

(2)window搜索框搜索并调用出QT的mingw命令行,使用windeployqt命令

mingw

(3)执行以下命令

1
2
3
4
# cd 你所放exe的文件路径
cd D:\showEXE
# 执行windeployqt xxx(名字).exe
windeployqt KinectPeopleDection.exe

windeployqt

添加缺失的dll(动态链接库)

此时你可以直接运行该exe文件,但是当你移植到其他电脑时可能会出现库缺失的现象。这可能时因为所使用的第三方库如openCV并没有同步添加进来。

(1)下载Dependency Walker

(2)运行并打开xxx.exe

Dependency Walker

(3)检查缺失dll

对比depens所罗列的dll文件与上一步自动拷贝的dll,找出所缺库。这里可以看到openCV kinect的dll根本没有

所缺库

(4)添加缺失dll

full path 可以看到exe所用dll的路径

根据所给路径,将所缺dll复制到所含exe文件夹中

full path

小小坑:感觉应该全部找到了,但是在实际运行中Qt5Test.dll Qt5OpenGL.dll也缺失了,该软件也没有提示…

小小理解:有些系统dll文件引用过来全是64位(如:user32.dll),而mingw编译完是32位的,似乎该软件也提示不兼容。但是我觉得既然在我们的系统上可以运行,就说明没什么太大影响。于是这些dll我选择忽略

图片就位

图片文件夹与exe放置在同一目录下

图片文件夹

程序修改对应路径

1
2
3
4
5
6
7
8
9
10
//在mainwindow.h中声明变量,最好是全局变量啦,
QString applicationdDirPath;

//在mainwindow.cpp
//MainWindow::MainWindow(QWidget *parent) 函数里
//获取当前程序所在位置
applicationdDirPath = QCoreApplication::applicationDirPath();

//程序中的图片路径便是 applicationdDirPath +...
QString frameBGRPath = applicationdDirPath + "/img/"+QString::number(collectNumber)+"/bgr"+QString::number(imgCount)+".jpg";

在此插一个小知识点

QString 字符串拼接

类型转换

QString转整型、字符串

eg:

1
2
frameBGRPath.toStdString();
frameBGRPath.toInt();

整型转QString

eg:

1
2
int collectNumber = 1;
QString bgr = QString::number(collectNumber);

可选操作

更换exe的图标

QT程序图标和窗口图标

转icon线上工具

整体打包

Enigma Virtual Box下载

QTcreator生成可在其他电脑上跑的exe文件封包过程

参考文献

VS2015+QT5.8 程序打包发布详解(包含图片打包,附工具和源码)

---------------- 本文结束 ----------------

本文标题:Qt creator 封装带图片的可执行文件

文章作者:Pabebe

发布时间:2019年09月06日 - 16:18:59

最后更新:2020年06月16日 - 18:24:34

原始链接:https://pabebezz.github.io/article/1c3f6ab/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%