Qt打包工具windeployqt自动打包exe程序

Qt打包工具windeployqt自动打包exe程序

  • 一、Qt打包工具windeployqt自动打包exe程序
    • 1.问题所在
    • 2. 如何使用
    • 3. 注意点
      • 3.1 第一点
      • 3.2 第二点
      • 3.3 更直接的解决方法(不是最优的办法,但是方便好用)
  • 二、应用程序的发布


一、Qt打包工具windeployqt自动打包exe程序

参考链接

1.问题所在

开发好 Qt 程序,编译好 exe,在自己电脑上运行完全没问题,还需要放到其他电脑(windows)上依旧可正常运行(其他电脑上有的没有带运行时所需的库),所以需要把 exe 需要的所有依赖的库都打在一个包里。

2. 如何使用

在 Qt 中,有一个工具专门干的就是把 Qt 开发的 exe 依赖的所有库自动添加到所需的目录,它就是 windeployqt.exe(在Qt的安装目录下),或者从开始菜单查找。
Qt打包工具windeployqt自动打包exe程序_第1张图片
直接在命令行中直接输入具体命令的路径 (用鼠标直接拖放应用程序到这个界面,路径也就自动填写了) ,不用添加环境变量,也不用进入 exe 所在目录,如图:
Qt打包工具windeployqt自动打包exe程序_第2张图片

3. 注意点

3.1 第一点

发布 Qt 程序,必须编译生成 Release 版本的 exe, 不能使用 Debug 版本(使用 Debug 版本会报错,还不知为何?有待细索~)

3.2 第二点

使用 windeployqt 命令打包时注意区分 32 位和 64 位(二者区别当然很大),对应上你的 exe 程序位数(不然会提示很多运行时库的问题),下图是我的 Qt 安装目录展示:
Qt打包工具windeployqt自动打包exe程序_第3张图片

3.3 更直接的解决方法(不是最优的办法,但是方便好用)

把系统盘Windows\System32(使用32bit编译),或者Windows\System(使用64bit编译)下的*.dll文件全部复制到U盘,新建一个system文件夹,然后在另外一个装有Windows系统的PC机上,先运行程序,看缺少哪个dll,就在U盘system文件夹下复制对应的dll文件,直至程序成功运行。第三方单独编译的库,需要提前复制到应用程序所在目录。

二、应用程序的发布

只有了可直接使用的exe还是不够方便啊,想想自己下载的软件不都是有安装包吗,下载安装包就能直接运行,我们也安排上!!

要生成安装包需要用到Inno setup,毕竟咱自己个捣鼓也不会是吧

1)下载软件,点击链接Inno Setup Downloads
Qt打包工具windeployqt自动打包exe程序_第4张图片
2)下载好后进入, 创建一个向导脚本
Qt打包工具windeployqt自动打包exe程序_第5张图片
Qt打包工具windeployqt自动打包exe程序_第6张图片
Qt打包工具windeployqt自动打包exe程序_第7张图片
Qt打包工具windeployqt自动打包exe程序_第8张图片
Qt打包工具windeployqt自动打包exe程序_第9张图片
Qt打包工具windeployqt自动打包exe程序_第10张图片
Qt打包工具windeployqt自动打包exe程序_第11张图片
Qt打包工具windeployqt自动打包exe程序_第12张图片Qt打包工具windeployqt自动打包exe程序_第13张图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/c4e3c04302e449589a9ac42ca3384d8d.png#pic_center
Qt打包工具windeployqt自动打包exe程序_第14张图片
Qt打包工具windeployqt自动打包exe程序_第15张图片
Qt打包工具windeployqt自动打包exe程序_第16张图片
Qt打包工具windeployqt自动打包exe程序_第17张图片
Qt打包工具windeployqt自动打包exe程序_第18张图片

你可能感兴趣的:(Qt经验总结,qt,开发语言)