文章目录
Qt 打包发布方式
假设我写了一 app.exe 程序,主要有以下几种发布方法:
- app.exe 和动态链接库放在一起发布
- 打包成一个独立的 app.exe 文件直接发布
- 打包成安装包的方式发布
- 静态编译 app.exe 发布
- 一个大神说,还可以将动态库文件通过内存调用…(还没有尝试)
注意事项:本文的方法不适宜用来打包Qt写的纯C++项目(Plain C++)!!!究其原因,是因为本文下面所用的 Qt 自带的 windeployqt.exe 不支持!!!
发布纯C++项目的话,可以去看这篇博客…Qt中纯C++项目发布为dll的方法(超详细步骤)
接下来一个个的讲…
公共步骤 - 找到依赖项及链接关系
第一步:生成 release 版本的 Qt 可执行程序
第二步:在工程目录下找到该文件
- 先在工程根目录下找到 build-你的工程名-Desktop_Qt_5_7_0_MinGW_32bit-Release 这个文件夹
- 把 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 发布
分支五:将动态库文件通过内存调用
- 暂无…请读者自行研究
总结
路漫漫其修远兮,吾将上下而求索