Qt 打包 exe 避坑指南:windeployqt + NSIS 生成安装包

发布时间:2026/9/6 2:24:57
Qt 打包 exe 避坑指南:windeployqt + NSIS 生成安装包 本文介绍如何将 Qt 开发的应用程序打包成专业的 Windows 安装包.exe使用 windeployqt 收集依赖再通过 NSIS 制作安装程序。一、准备工作二、第一步生成 Release 版 exe必须使用 Release 模式编译Debug 版本依赖调试库体积大且无法独立运行。1在 Qt Creator 中打开项目2将构建模式切换为 Release3编译项目4找到生成的 .exe 文件一般位于text 项目根目录/build-项目名-Desktop_Qt_版本号_编译器-bit-Release/release/三、第二步收集 Qt 依赖库Qt 程序依赖大量动态链接库DLL需要使用 windeployqt 工具自动收集。3.1 创建独立文件夹新建一个文件夹如 package将上一步生成的 .exe 复制进去。3.2 运行 windeployqt打开 Qt 自带的命令行工具不要用 Windows 自带的 cmdcd 到 package 目录执行bash windeployqt.exe--release YourApp.exe3.3 检查依赖windeployqt 会自动复制所有必需的 Qt 库、插件如 platforms/qwindows.dll、QML 文件等到 exe 所在目录。注意如果程序使用了 Qt 的图片格式插件如 jpg、gif需要额外检查 imageformats 文件夹是否被正确拷贝。四、第三步使用 NSIS 制作安装包4.1 编写 NSIS 脚本创建一个 .nsi 脚本文件这是 NSIS 的配置文件用于定义安装包的行为。以下是一个完整的脚本模板;启用 Unicode 支持避免中文乱码 Unicode true;引入现代界面库!includeMUI2.nsh;基础信息 NameYourAppNameOutFileYourApp-Setup-v1.0.0.exeInstallDir$PROGRAMFILES64\YourAppNameRequestExecutionLevel admin;压缩方式 SetCompressor/SOLID lzma;界面页面配置!insertmacro MUI_PAGE_WELCOME!insertmacro MUI_PAGE_DIRECTORY!insertmacro MUI_PAGE_INSTFILES!insertmacro MUI_PAGE_FINISH;卸载页面!insertmacro MUI_UNPAGE_WELCOME!insertmacro MUI_UNPAGE_CONFIRM!insertmacro MUI_UNPAGE_INSTFILES;语言简体中文英文可选!insertmacro MUI_LANGUAGESimplifiedChinese!insertmacro MUI_LANGUAGEEnglish;安装主逻辑 SectionInstall;设置安装目录 SetOutPath$INSTDIR;复制所有文件已用 windeployqt 收集好依赖 File/rpackage\*.*;创建桌面快捷方式 CreateShortcut$DESKTOP\YourAppName.lnk$INSTDIR\YourApp.exe;创建开始菜单快捷方式 CreateDirectory$SMPROGRAMS\YourAppNameCreateShortcut$SMPROGRAMS\YourAppName\YourAppName.lnk$INSTDIR\YourApp.exeCreateShortcut$SMPROGRAMS\YourAppName\卸载.lnk$INSTDIR\Uninstall.exe;写入卸载程序 WriteUninstaller$INSTDIR\Uninstall.exe;写入注册表用于控制面板显示 WriteRegStr HKLMSoftware\Microsoft\Windows\CurrentVersion\Uninstall\YourAppName\DisplayNameYourAppNameWriteRegStr HKLMSoftware\Microsoft\Windows\CurrentVersion\Uninstall\YourAppName\UninstallString$INSTDIR\Uninstall.exeSectionEnd;卸载逻辑 SectionUninstallDelete$INSTDIR\*.*RMDir/r$INSTDIRDelete$DESKTOP\YourAppName.lnkRMDir/r$SMPROGRAMS\YourAppNameDeleteRegKey HKLMSoftware\Microsoft\Windows\CurrentVersion\Uninstall\YourAppNameSectionEnd4.2 脚本关键配置说明4.3 编译生成安装包两种方式命令行在 NSIS 安装目录下运行bash makensis.exe YourApp.nsi2图形界面右键点击 .nsi 文件 → “Compile NSIS Script”或拖入 NSIS 窗口编译。编译成功后会在脚本同级目录生成 YourApp-Setup-v1.0.0.exe 安装包。五、常见问题与解决六、总结完整流程概览编写 Qt 程序 ↓ Release 模式编译生成.exe ↓ windeployqt 收集依赖库 ↓ 编写 NSIS 脚本.nsi ↓ makensis 编译生成安装包 ↓ 测试安装包 → 发布按照以上步骤你可以将 Qt 应用程序打包成专业的 Windows 安装包方便分发给用户使用。