Qt 程序打包发布

· Qt 打包发布方式

假设我写了一 app.exe 程序,主要有以下几种方法:

  • app.exe 和动态链接库放在一起发布
  • 打包成一个独立的 app.exe 文件直接发布
  • 打包成安装包的方式发布
  • 静态编译 app.exe 发布
  • 一个大神说,还可以将动态库文件通过内存调用…(还没有尝试)

注意事项:本文的方法不适宜用来打包Qt写的纯C++项目(Plain C++)!!!究其原因,是因为本文下面所用的 Qt 自带的 windeployqt.exe 不支持!!!

纯C++项目的话,可以去看这篇博客…Qt中纯C++项目发布为dll的方法(超详细步骤)

接下来一个个的讲…


· 公共步骤 - 找到依赖项及链接关系

第一步:生成 release 版本的 Qt 可执行程序

这里写图片描述

第二步:在工程目录下找到该文件

  1. 先在工程根目录下找到 build-你的工程名-Desktop_Qt_5_7_0_MinGW_32bit-Release 这个文件夹
  2. release 文件夹的 app.exe 拷贝至一个新文件夹,如在桌面上新建一个RELEASE 文件夹

第三步:寻找依赖项

1-通过开始菜单找到 Qtx.x for Desktop

这里写图片描述

2-输入命令 cd /d C:\Users\Neverland_LY\Desktop ,回车

3-输入命令 windeployqt app.exe

这里写图片描述

此时,RELEASE 文件夹会多出来很多文件

这里写图片描述

**其实有简单的方法,直接把 RELEASE 的 app.exe 拖动到 Qt 安装目录下的
..\5.7\mingw53_32\bin\windeployqt.exe 即可**

这里写图片描述


· 分支一:app.exe 和动态链接库放在一起发布

直接将 RELEASE 文件夹打包成压缩包,然后放在别的电脑直接调用即可

PS:如果在别的电脑运行提示还缺少 .dll 文件,那么就在自己电脑上把对应的文件在Qt安装目录下找齐,放到 RELEASE 文件夹重新打包即可


· 分支二:打包成一个独立的 app.exe 文件直接发布

首先下一个 Enigma Virtual Box

Application virtualization system for Windows. Enigma Virtual Box enables application files and registry to be consolidated in a single executable file, without loss of efficiency and without virtualized files having to be extracted to the HDD. Enigma Virtual Box is a free application that supports both x86 and x64 binaries.
[官网简介]

  • Enter Input File Name:选择 app.exe
  • Enter Output File Name:自己选择一个输出路径并重命名程序名
  • File 窗口:将RELEASE 文件夹下的所有文件都拖进来
  • Files Option:选择压缩(Compression)

这里写图片描述

这里写图片描述

弹出如下窗口直接选确定

![这里写图片描述](https://img-blog.csdn.net/20180415112017481?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzE5MTg4/font/5a6L5L2T/fontsize/400/fi **ll/I0JBQkFCMA==/dissolve/70)

最后点击 Process开始制作,运行结束后如下:

这里写图片描述

好了,拿到别的电脑上尽情运行去吧~~~


· 分支三:打包成安装包的方式发布

推荐使用:Inno Setup

Inno Setup is a free installer for Windows programs. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability. [官网简介]

这篇百度经验个人认为写的不错,我就不造轮子了,大家加油!!!Inno打包教程


· 分支四:静态编译 app.exe 发布

待写…

可以查看该篇博文…


· 分支五:将动态库文件通过内存调用

暂无..请读者自行研究


· 总结

路漫漫其修远兮,吾将上下而求索


· 联系作者

邮箱::[email protected]

PS:今天凌晨,勇士季后赛首场对马刺取得胜利,恭喜勇士,哈哈哈~~~*上一张DIY 壁纸

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_34719188/article/details/79947764