一、
首先你要有一个qt。
并且要写一个能运行的程序
二、
切换成release,然后跑一遍。
三、
找到项目下的build-v1_0-Desktop_Qt_5_12_0_MinGW_64_bit-Release/release,然后把里面那个exe文件(图中v1_0.exe文件)复制到一个空文件夹里。(我这里是E:/TEMP/exefile)
这个时候直接双击打开exe文件是运行不了的,因为缺少必要的库文件。
四、
打开qt自带的工具Qt 5.12.0 for Desktop (MinGW 7.3.0 64-bit)
打开这玩意,然后cd到上面那个空文件夹(我这里是E:/TEMP/exefile)
输入 windeployqt 程序名 ,自动添加所需库文件。(我这里程序名是v1_0.exe,所以是windeployqt v1_0.exe)
然后库文件就有了。
打开刚才那个文件夹,然后双击运行exe文件,现在可以运行了
五、
现在直接把这个文件夹给没有装qt的电脑上也可以运行,不过还是有点low。
所以需要一个打包软件Enigma Virtual Box,
下载地址:https://enigmaprotector.com/en/downloads.html
上面是选那个exe文件,下面是生成可执行文件的路径(这个时候可以把exe文件名字改一下)然后点add把所需要的库文件都添加进去(可以直接拖进去)
file options可以选择把文件压缩。
然后点Process就行了。
六、
两个细节:
1.设置左上角和状态栏里的logo图片:
在项目文件夹下面添加一个.ico格式的图片,然后再项目的.pro文件里面加一句
RC_ICONS = logo.ico
2.自动添加的库文件有些不需要,直接打包的话生成的exe文件有点大。
libEGL.dll, libGLESV2.dll opengl32sw.dll可以删掉。
translations文件夹可以删掉(如果没有国际化的话)
imageformats文件夹大多数时候可以删掉
qmltooling 和 Qt5Network.dll可以删掉。
建议删除库文件的时候删一个运行一次exe文件试试,以免误删。
最后还剩这些。这样再打包总体积少了一半。