抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

1

Qt程序打包,没有想象中那么复杂。

发现问题

在使用 Qt C++ 发布生成 *.exe 时,需要复制大量 dll 动态链接库文件,这一点相信每一个 Qt 开发者都经历过。除了手动复制,能不能有一种更优雅的解决方案呢?

问题调研

在当前的主流语言中,打包方式可谓是大道至简。使用 C++ 时,你可以通过 Visual Studio 自带的打包插件完成打包;使用 Python 时,你可以借助 PyInstaller 这样的打包工具执行命令完成打包; 使用 Golang 时,你可以借助它自带的打包工具执行命令完成打包…

Qt 官方为了解决这一问题,早就在 Qt 安装时内置一个一键打包程序 —— wideployqt.exe

解决方案

windeployqt.exe 使用教程

1. 准备文件

  • 一个 release 模式下编译好的 exe;
  • 其他非系统库;
  • exe 启动时读取的目录或文件等。

准备好上述文件后,将它们拷贝至一个新建的文件夹中,文件夹路径和命名不能包含中文。

image-20210402115944384

2. 启动 Qt 对应编译器的控制台程序

我使用的 MinGW 5.3.0 , 故选择图中这个控制台程序。

image-20210402133306270

3.在控制台打开编译好的 exe 所在路径

image-20210402133627859

4. 输入打包命令开始打包

打开对应路径后,输入下方的打包命令,即可开始打包。

1
windeployqt [exe文件名]

image-20210402133900186

稍等片刻,打开文件夹你会看到,所有的 dll 库已经拷贝完成了,我们可以打开 exe 试一试打包是否成功。

image-20210402134034013

参考链接

[1] 新浪博客 - Qt之打包发布(NSIS详解)

[2] CSDN - 教你使用windeployqt工具来进行Qt的打包发布

评论