【Qt】如何使用QtInstallerFramework打包Qt程序
使用 Qt Installer Framework 可以将你的 Qt 程序打包成一个带有安装向导的安装包,适用于 Windows、Linux 和 macOS 平台。以下是完整的打包流程,以你当前开发的 ecgexport
应用为例。
🧰 一、准备工作
1. 安装 Qt Installer Framework
- 下载地址:Index of /official_releases/qt-installer-framework
- 推荐版本:
4.5.x
(目前最稳定) - 安装完成后会包含以下关键工具:
binarycreator
installerbase
archivegen
📁 二、准备你的应用程序目录结构
建议目录结构如下:
myapp/
├── config/
│ └── config.xml
├── packages/
│ └── com.mycompany.myapp/
│ ├── meta/
│ │ └── package.xml
│ └── data/
│ └── ecgexport.exe (或你的程序 + 所有依赖)
└── installer/└── installerbase.exe
🛠️ 三、配置文件说明
1. config/config.xml
—— 全局配置
<?xml version="1.0" encoding="UTF-8"?>
<Installer><Name>xx报告导出工具</Name><Version>1.0.0</Version><Title>xx文件导出安装程序</Title><Publisher>MyCompany</Publisher><StartMenuDir>MyApp</StartMenuDir><TargetDir>@HomeDir@/MyApp</TargetDir>
</Installer>
2. packages/com.mycompany.myapp/meta/package.xml
—— 包描述
<?xml version="1.0" encoding="UTF-8"?>
<Package><DisplayName>xx导出模块</DisplayName><Description>用于导出xx报告的桌面应用</Description><Version>1.0.0</Version><ReleaseDate>2025-04-05</ReleaseDate><Default>true</Default><Script>installscript.qs</Script>
</Package>
你可以添加可选脚本 installscript.qs
来实现自定义安装逻辑。
🧱 四、打包你的程序
1. 收集所有依赖项
使用 Qt 的 windeployqt
工具收集依赖库:
windeployqt --dir deploy_dir ecgexport.exe
这会自动把 Qt 插件、dll 等复制到 deploy_dir
目录中。
2. 将程序复制到 data/
目录
cp -r deploy_dir/* myapp/packages/com.mycompany.myapp/data/
📦 五、生成安装包
进入 myapp
根目录执行:
binarycreator -c config/config.xml -p packages my_installer.exe
生成的安装包为:my_installer.exe
🖼️ 六、美化安装界面(可选)
你可以通过以下方式定制安装器外观:
- 在
config.xml
中设置图标:<Logo>path/to/icon.png</Logo>
- 使用
installerbase
模板替换默认皮肤(高级功能)
✅ 七、测试安装包
双击运行 my_installer.exe
,测试是否能正常安装并运行你的程序。
🧪 八、常见问题排查
问题 | 解决方案 |
---|---|
安装后无法运行 | 缺少 VC++ 运行时,请确保目标系统已安装 |
中文乱码 | 设置合适的字体和编码支持 |
依赖缺失 | 检查是否完整使用 windeployqt |
启动慢 | 可尝试静态编译(需商业授权) |
📌 示例总结(以你的 ecgexport 为例)
# 步骤 1:部署依赖
windeployqt --dir deploy ecgexport.exe# 步骤 2:复制到 data 目录
cp -r deploy/* myapp/packages/com.mycompany.myapp/data/# 步骤 3:构建安装包
cd myapp
binarycreator -c config/config.xml -p packages ecgexport_installer.exe
最终你会得到一个名为 ecgexport_installer.exe
的安装包,可在任意 Windows PC 或 Server 上运行。
如需进一步集成到 CI/CD 流程、自动版本号管理、签名打包等,也可以继续提问。