在windoes平台下,通过Qt开发的程序,如何进行打包在其他的电脑中使用呢?Qt自带一种工具windeployqt来进行打包,下面详细介绍打包的流程和避免的坑。详细流程如下:
1、Qt程序设置release编译,生成exe文件, 将exe文件拷贝到单独的目录
2、使用windeployqt进行打包
3、将打包好的程序放到新的电脑运行
4、常用定位方法
1、生成exe文件
项目中参考下面的操作,配置release版本,需要注意的就是64位和32位,根据需要进行配置。点击运行按钮,生成exe文件。
将exe文件拷贝到单独的目录
2 使用windeployqt进行打包
2.1 找到windeployqt的位置
使用搜索软件 Everything 搜索windeployqt.exe,会出现32位和64位两个目录
2.2 打开cmd窗口
通过快捷键 “win”+R打开运行窗口,输入cmd然后回车
2.3 切换到你exe文件所在的目录
如果当前路径所在的磁盘和你exe所在的磁盘是相同的磁盘,输入下面的命令:
cd exe所在的路径,下面是栗子
cd C:\Users\Mrwang\Desktop\gif\Test
如果当前路径和所在磁盘与你exe所在的磁盘不相同,先切换到exe所在的磁盘,切换方法 例如 E:
2.4 windeployqt 搜索库
在网上会发现很多的文章介绍的非常简单,会告诉你,直接运行下面的命令:
windeployqt Test.exe
但是,这是极其不负责任的,因为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
如果你的代码中包含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 将打印输出出来进行调试。