在QT中生成exe安装程序并不困难,下面将为您详细介绍如何用QT生成exe安装程序的过程。本教程假设您已经具备一定的QT编程基础。
开发工具:
1. Qt Creator IDE
2. NSIS (Nullsoft Scriptable Install System)
开发环境:
1. 学习本教程需要安装Qt框架和Qt Creator,下载地址:https://www.qt.io/download
2. 学习本教程需要下载NSIS安装程序制作工具,下载地址: https://nsis.sourceforge.io/Download
步骤1:创建一个简单的Qt窗体程序
在Qt Creator中新建一个Qt Widgets Application项目,例如:TestApp。编写程序、设计界面等,确保程序能正常编译运行。
步骤2:编译程序生成.exe文件
在Qt Creator中,选择Release模式编译生成exe文件。一般路径位于:“项目根目录/build-项目名-Desktop_Qt_版本号_MinGW_位数-bit-Release/release/”。
步骤3:收集依赖库
将程序所依赖的.dll文件复制到exe所在目录。可以通过以下方法收集依赖库:
1. 使用windeployqt工具(位于Qt安装目录的bin文件夹内),在命令提示符执行以下命令:
```
[PATH TO YOUR QT BIN FOLDER]\windeployqt.exe --release [PATH TO YOUR EXE FILE]
```
例如:
```
C:\Qt\5.15.2\mingw81_32\bin\windeployqt.exe --release C:\TestApp\build-TestApp-Desktop_Qt_5_15_2_MinGW_32_bit-Release\release\TestApp.exe
```
运行windeployqt工具后会自动将所需要的依赖库复制到.exe文件的同级目录下。
步骤4:创建NSIS脚本文件
首先,安装并打开NSIS程序。接着,参考以下示例创建一个名为TestApp.nsi的NSIS脚本文件,用于定义安装包的配置。示例脚本内容:
```nsis
Outfile "TestAppInstaller.exe"
InstallDir $PROGRAMFILES\TestApp
Section "MainSection"
SetOutPath $INSTDIR
File /r "C:\TestApp\build-TestApp-Desktop_Qt_5_15_2_MinGW_32_bit-Release\release\*"
WriteUninstaller $INSTDIR\Uninstall.exe
CreateDirectory $SMPROGRAMS\TestApp
CreateShortCut "$SMPROGRAMS\TestApp\TestApp.lnk" "$INSTDIR\TestApp.exe"
CreateShortCut "$SMPROGRAMS\TestApp\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\TestApp" "DisplayName" "TestApp"
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\TestApp" "UninstallString" "$INSTDIR\Uninstall.exe"
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\*"
Delete "$SMPROGRAMS\TestApp\TestApp.lnk"
Delete "$SMPROGRAMS\TestApp\Uninstall.lnk"
RMDir /r $SMPROGRAMS\TestApp
DeleteRegKey HKCU "Software\Microsoft\Windows\CurrentVersion\Uninstall\TestApp"
RMDir /r $INSTDIR
SectionEnd
```
请根据实际情况修改示例脚本中的路径、文件名等。
步骤5:编译并生成安装程序
在NSIS中,打开NSIS脚本文件(TestApp.nsi),单击左上角的“Compile Script”按钮,NSIS将自动生成名为TestAppInstaller.exe的安装程序。
现在,可将TestAppInstaller.exe发送给其他人进行安装。成功安装后,他们将可以正常使用您基于Qt的TestApp程序。
注意:确保您拥有所有使用的依赖库(.dll文件)的发布许可。有一些库可能要求在发布时遵循特定的开源许可证,或者购买商业许可。