1. 为什么应该放弃windeployqt打包QGC地面站
如果你曾经用windeployqt工具打包过Qt应用程序,特别是像QGroundControl(QGC)这样的复杂地面站软件,大概率遇到过各种莫名其妙的运行时错误。我最早接触QGC打包时,也是按照官方文档使用windeployqt,结果每次打包都像开盲盒——有时能成功,有时会缺少关键DLL,最头疼的是这些问题往往要到用户端才会暴露。
windeployqt的主要问题在于它的依赖检测机制不够智能。这个工具虽然能自动扫描Qt运行时依赖,但对于第三方库(比如QGC用到的SDL2.dll)经常漏掉。更糟的是,不同版本的Qt套件中windeployqt行为还不一致,我在Qt 5.15和6.2上就遇到过完全不同的依赖收集结果。这种不确定性在专业软件开发中是完全不可接受的。
实际踩坑后发现,windeployqt至少存在三类典型问题:
- 依赖遗漏:经常漏掉OpenSSL、多媒体编解码库等关键组件
- 路径混乱:生成的目录结构不符合Windows软件规范
- 调试困难:错误往往只在特定系统环境才会触发
相比之下,Inno Setup作为专业的Windows安装包制作工具,不仅能完美解决上述问题,还带来了额外优势:
- 确定性构建:每次打包结果完全一致
- 用户友好:支持创建标准的安装向导界面
- 灵活扩展:可以自定义安装前后的各种操作
2. Inno Setup环境准备与基础配置
2.1 安装Inno Setup编译器
首先需要从官网获取Inno Setup的最新稳定版(当前是6.2.2)。安装时有个细节需要注意:务必勾选"安装预处理器"选项,这个功能后面写脚本时会非常有用。安装完成后,建议再安装一个叫"Inno Setup Script Studio"的第三方IDE,它比原生的编辑器提供了更好的代码提示和调试支持。
我这里分享一个验证安装是否成功的小技巧:打开命令提示符,运行:
iscc /?
如果能看到编译器帮助信息,说明环境变量配置正确。如果没有输出,可能需要手动将Inno Setup的安装目录(默认是C:\Program Files (x86)\Inno Setup 6)添加到系统PATH环境变量中。
2.2 准备QGC发布文件
在开始写打包脚本前,需要先准备好QGC的发布文件。与windeployqt不同,我们采用更可靠的手动收集方式:
- 在Qt Creator中用Release模式编译QGC
- 将生成的QGroundControl.exe复制到一个新建的打包目录(例如D:\QGC_Package)
- 手动收集以下必要文件:
- Qt核心DLL(Qt5Core.dll, Qt5Gui.dll等)</



被折叠的 条评论
为什么被折叠?



