新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/6 2:25:35来源:尧图网络
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 安装包方便分发给用户使用。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Claude Fable 5.1 preserved thinking 拆解:Agent harness 为什么必须从可重写历史迁移到追加式会话 2026/9/6 3:07:45

Claude Fable 5.1 preserved thinking 拆解:Agent harness 为什么必须从可重写历史迁移到追加式会话

从会话粘性到无状态核心:LangChain 新版 MCP 的生产迁移实践LangChain 官方文章发布于二零二六年九月三日,并把新版能力定位为生产迁移的重要基础。MCP 支持被移入 langchain.mcp,调用边界因此更加清晰。安装入口统一为 langchain[mcp]&#…

阅读更多 →
Microduck 开源语音助手完整复刻:ESP32-S3 嵌入式 AI 实战指南 2026/9/6 3:07:45

Microduck 开源语音助手完整复刻:ESP32-S3 嵌入式 AI 实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Shanks塞拉斯瞬秒Junjia:一场由视野与经济差铸就的爆发 2026/9/6 3:07:45

Shanks塞拉斯瞬秒Junjia:一场由视野与经济差铸就的爆发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
CATIA参数化设计全解析:从基础公式到企业级应用实践 2026/9/6 3:07:45

CATIA参数化设计全解析:从基础公式到企业级应用实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
二进制运算及转换PPT课件:从位权到补码的教学设计 2026/9/6 3:07:45

二进制运算及转换PPT课件:从位权到补码的教学设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
AI全栈开发最佳实践:从vibe coding到规格驱动开发 2026/9/6 3:04:44

AI全栈开发最佳实践:从vibe coding到规格驱动开发

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞