Qt学习_12_一键生成安装包

用windows的.bat脚本实现一键生成Qt程序的安装包,代码如下

:: @echo off
% This is a window script used to package this software. %
% Running this script can generate a compressed software package. %
% After decompression, double-click Fugu.exe to run this software. %

set TargetRootPath=D:\Fugu
set TargetDataPath=D:\Fugu\frdata
set TargetProgramPath=D:\Fugu\frdata\data_handle_program

set exePath=D:\Projects\Fugu\FuguPC\build_64bit\release\Fugu.exe
set paraPath=D:\Projects\Fugu\FuguPC\build_64bit\default_para.txt
set frdataPath=D:\Projects\Fugu\FuguPC\build_64bit\frdata
set programPath=D:\Projects\Fugu\FuguPC\build_64bit\frdata\data_handle_program

set PackagePath=D:\Projects\Fugu\FuguPC_win64_v1.0.rar

md %TargetRootPath%
md %TargetDataPath%
md %TargetProgramPath%

copy %exePath% %TargetRootPath%
copy %paraPath% %TargetRootPath%
xcopy %programPath% %TargetProgramPath% /q /e /r /S /Y

cd /d %TargetRootPath%

"C:\Qt\Qt5.13.0\5.13.0\msvc2017_64\bin\windeployqt.exe" Fugu.exe Fugu.exe
"C:\Program Files\WinRAR\WinRAR.exe" a -r %PackagePath% %TargetRootPath%

cd /d ../../
rd /s /q %TargetRootPath%

::pause

关键:

windeployqt.exe要用全路径,否则系统会认为它不是内部的命令,32位就选32位的路径,64位就选64位的路径,具体视情况而定。

WinRAR.exe也要用全路径,代码中的那一行就是把TargetRootPath目录全部一起打包到指定路径PackagePath的意思。

主要流程

1、创建一个软件安装包根目录

2、创建一些必要的文件夹,这个取决于你自己程序要不要用,比如我的程序,frdata这个目录就是用于存储数据的。如果没有把数据存到文件夹,就可以不用特地去创建。

3、从Qt编译生成的目录里面把可执行文件(.exe)拷贝到软件安装包根目录,比如我的是Fugu.exe。

4、把你软件本身需要用到的参数文件,比如我的程序就是default_para.txt。 拷过来。

5、比较关键的就是 执行命令: windeployqt.exe  Fugu.exe Fugu.exe。  这个Fugu一般就是你Qt的项目名。这个命令就会把运行Fugu.exe所需要的所有动态库全部搜刮过来,一并放到你的软件安装包根目录。

6、最后一步就是把这个软件安装包根目录打包压缩,发给别人,别人一解压点击这个Fugu.exe就能运行软件了。

另外,恶心的Win11已经不给你提供.bat文件的编辑接口了,你只能先在.txt文件里面写好,再改成.bat文件,这就导致来来回回的改文件名后缀非常麻烦。 所以建议把这个package.bat文件导入到Qt项目中去。这样改起来也方便。

Qt学习_12_一键生成安装包_第1张图片

你可能感兴趣的:(QT学习,Qt,安装包)