使用?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 流程、自動版本號管理、簽名打包等,也可以繼續提問。