QT-windepolyqt打包程序详细介绍

在windoes平台下,通过Qt开发的程序,如何进行打包在其他的电脑中使用呢?Qt自带一种工具windeployqt来进行打包,下面详细介绍打包的流程和避免的坑。详细流程如下:
1、Qt程序设置release编译,生成exe文件, 将exe文件拷贝到单独的目录
2、使用windeployqt进行打包
3、将打包好的程序放到新的电脑运行
4、常用定位方法

1、生成exe文件

项目中参考下面的操作,配置release版本,需要注意的就是64位和32位,根据需要进行配置。点击运行按钮,生成exe文件。

QT-windepolyqt打包程序详细介绍
将exe文件拷贝到单独的目录
QT-windepolyqt打包程序详细介绍

2 使用windeployqt进行打包

2.1 找到windeployqt的位置
使用搜索软件 Everything 搜索windeployqt.exe,会出现32位和64位两个目录
QT-windepolyqt打包程序详细介绍
2.2 打开cmd窗口
通过快捷键 “win”+R打开运行窗口,输入cmd然后回车
QT-windepolyqt打包程序详细介绍QT-windepolyqt打包程序详细介绍
2.3 切换到你exe文件所在的目录
如果当前路径所在的磁盘和你exe所在的磁盘是相同的磁盘,输入下面的命令:

cd exe所在的路径,下面是栗子
cd  C:\Users\Mrwang\Desktop\gif\Test

如果当前路径和所在磁盘与你exe所在的磁盘不相同,先切换到exe所在的磁盘,切换方法 例如 E:
QT-windepolyqt打包程序详细介绍
2.4 windeployqt 搜索库
在网上会发现很多的文章介绍的非常简单,会告诉你,直接运行下面的命令:

windeployqt Test.exe

QT-windepolyqt打包程序详细介绍
但是,这是极其不负责任的,因为QT分为32位和64位,这样运行你不知道是打包的32位还是64位。这是一个坑,大家注意,一定要用下面的方法,否则出现问题你都不知道如何解决。

如果你的exe是32位编译的,就选择32位路径下的windeployqt.exe,64位选择64位路径下的exe.

32位运行下面的命令:
C:\Qt\Qt5.12.10\5.12.10\msvc2017\bin\windeployqt Test.exe

64位运行下面的命令:
C:\Qt\Qt5.12.10\5.12.10\msvc2017_64\bin\windeployqt Test.exe

QT-windepolyqt打包程序详细介绍

如果你的代码中包含qml,记得使用下面的命令:

32位:
C:\Qt\Qt5.12.10\5.12.10\msvc2017\bin\windeployqt Test.exe --qmldir C:\Qt\Qt5.12.10\5.12.10\msvc2017\qml

64位:
C:\Qt\Qt5.12.10\5.12.10\msvc2017_64\bin\windeployqt Test.exe --qmldir C:\Qt\Qt5.12.10\5.12.10\msvc2017_64\qml

3 常用定位方法

1、使用Dependencies工具查看exe文件所依赖的包是否缺少或者x86 x64对应错误

2、在代码中添加print打印,使用 Test.exe > 1.text 将打印输出出来进行调试。

上一篇:QT 打包以及运行运行程序出现0x0000007b --解决方法 包有效(嘿嘿)


下一篇:解决MySQL中文乱码