第十五课、Windows 下打包发布 Qt 应用程序

功能描述:讲解了 Windows 下打包发布 Qt 应用程序的三种方法,并对比优缺点

一、利用 windepolyqt 工具打包发布

Qt 提供了一个 windeployqt 工具来自动创建可部署的文件夹。

打包发布流程:

1. 新建一个文件夹,将编译后的可执行程序拷贝到该文件夹中,以 QSshDemo.exe 应用程序为例,新建一个 QSsh-exe 文件夹,将 release 文件夹下的 QSshDemo.exe 文件拷贝到 QSsh-exe 文件夹下;

2. 查看本应用程序是由哪个编译器编译,去 Qt 安装目录相应编译器名称目录下的 bin 文件夹下寻找 windeployqt.exe 文件,如:路径为 xxx/Qt5.10.0/5.10.0/mingw53_32/bin, windeployqt.exe 文件拷贝到应用程序的同级目录下。QSshDemo.exe 由 Qt 5.10.0 的 MinGW 编译器编译,所以到 xxx(Qt 安装目录根目录)/Qt5.10.0/5.10.0/mingw53_32/bin 目录下,将 windeployqt.exe 文件复制粘到 QSshDemo.exe 的同级目录下;

3. 在搜索框中输入 “cmd” 回车,或者在“开始”菜单打开“命令提示符”,通过 cd 指令切换到应用程序文件夹下,如切换到 QSsh-exe 文件夹下;

 4. 执行 windeployqt 打包指令格式为:windeployqt.exe +空格+应用程序名称.exe

命令格式:windeployqt.exe 应用程序名称.exe
windeployqt.exe QSshDemo.exe

5. 如果应用程序仅依赖 Qt 自身动态库,则到此结束,双击应用程序即可运行;如果应用程序还依赖其它第三方库,则需要手动将第三方库拷贝到此文件夹下,注意:此处的第三方库必须和应用程序是同一种编译器编译。QSshDemo.exe 还依赖 QSsh 动态库,所以手动将这个动态库拷贝到QSsh-exe 文件夹下。

6. 到此,应用程序打包发布完成,为了减小应用程序发布文件夹的大小,建议删除 windeployqt.exe文件,双击 QSshDemo.exe 即可运行程序。

7. 此文件包含了应用程序所需的所有文件,将此文件夹提供给用户,用户可放到系统中任何位置,双击应用程序即可运行;也可通过选中该应用程序,右键菜单选择“发送到” -> “桌面快捷方式”,双击桌面快捷方式亦可运行。

优点:操作简单,一个指令搞定所有依赖文件

缺点:并不是所有文件都是该应用程序所必需的,发布打包文件会浪费一些存储空间

二、逐个拷贝应用程序依赖库

顾名思义,此方法是应用程序缺什么依赖库就拷贝对应的依赖库,直到程序能成功运行。

打包发布流程:

1. 新建一个文件夹,将编译后的可执行程序拷贝到该文件夹中,以 QSshDemo.exe 应用程序为例,新建一个 QSsh-exe 文件夹,将 release 文件夹下的 QSshDemo.exe 文件拷贝到 QSsh-exe 文件夹下;

2. 双击运行 QSshDemo.exe 应用程序,查看是否成功运行,如果不能成功运行,查看缺少什么依赖库

3. 将缺少的依赖库依次复制粘贴到应用程序的同级目录下,以 QSshDemo.exe 应用程序为例,将 Qssh.dll 复制粘贴到 QSsh-exe 文件夹下;

4. 重复第 2 步和第 3 步的操作,直到应用程序成功运行

 

 

5. 依次将 Qt5Core.dll、Qt5Gui.dll、Qt5Widgets.dll、libgcc_s_dw2-1.dll、Qt5Network.dll、libstdc++-6.dll、libwinpthread-1.dll 拷贝到 QSsh-exe 文件夹下,QSshDemo.exe 即可成功运行。

优点:发布打包文件仅包含必需依赖库,体积较小

缺点:逐个拷贝依赖库,操作相对麻烦

、静态发布

将 Qt 的所有库重新编译,全部编译为静态库,然后用静态编译的 Qt 库来链接应用程序,这样生成的应用程序就可以直接运行,而不需要 .dll 文件的支持。不过这样生成的 exe 文件会很大,而且静态编译缺乏灵活性,也不能部署插件。

因此,静态发布方式了解即可,不推荐使用!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yann@

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值