Qt 使用Installer Framework制作安裝包

Qt 使用Installer Framework制作安裝包

  • 引言
  • 一、下載安裝 Qt Installer Framework
  • 二、簡單使用
    • 2.1 創建目錄結構 (文件夾結構)
    • 2.2 制作程序壓縮包
    • 2.3 制作程序安裝包

引言

Qt Installer Framework (安裝程序框架)是一個強大的工具集,用于創建自定義的在線和離線安裝程序。它具有高度可配置性和可自定義性,適用于所有支持的Qt平臺:Linux、Windows和macOS。并且其提供了清晰的文檔和示例,幫助開發人員為應用程序創建安裝程序。

  • 本文以Windows為例,簡述其制作一個軟件安裝包的步驟.

一、下載安裝 Qt Installer Framework

官方下載地址:https://download.qt.io/official_releases/qt-installer-framework/
也可使用源碼安裝,可參考官方文檔:https://doc.qt.io/qtinstallerframework/ifw-getting-started.html#building-from-sources

    1. 從官方下載的安裝包,雙擊exe后無腦下一步即可
      在這里插入圖片描述
    1. 配置環境變量
      在我的電腦上右鍵 > 屬性 > 高級系統設置 > 環境變量 > 在Path中增加binarycreator.exe所在路徑
      在這里插入圖片描述
    1. 簡單驗證,在終端輸入binarycreator.exe,顯示如下圖所示:
      在這里插入圖片描述

二、簡單使用

官方文檔 Creating an Installer:https://doc.qt.io/qtinstallerframework/ifw-tutorial.html

2.1 創建目錄結構 (文件夾結構)

    1. 創建相關目錄以及配置文件,具體結構如下圖所示:
      在這里插入圖片描述
-config- config.xml
-packages- com.vendor.root- data- 程序壓縮包 (包含可執行文件和依賴庫等,支持7z, zip, tar.gz, tar.bz2 and tar.xz)- meta- 安裝的軟件模塊說明 (package.xml等)

創建一個目錄結構:比如創建一個目錄叫InstallerTest。該目錄必須包含名為configpackages的子目錄。config下需包含config.xml配置文件。packages下可包含一個或多個程序 or 模塊的目錄 (安裝時可選擇安哪個),每個目錄下又分為data (軟件相關)和 meta(安裝程序相關)

關于目錄結構的說明可參考:
使用Qt Installer Framework制作軟件安裝包:https://www.cnblogs.com/xia-weiwen/p/6857333.html
官方說明文檔 Package Directory:https://doc.qt.io/qtinstallerframework/ifw-component-description.html

    1. config.xml文件,其控制安裝程序的歡迎安裝文件夾開始菜單快捷方式等,如下圖所示:
<?xml version="1.0" encoding="UTF-8"?>
<Installer><Name>軟件名稱</Name><Version>1.0.0</Version><Title>安裝程序名稱 - 會在安裝程序的標題上顯示</Title><Publisher>軟件發布者</Publisher><StartMenuDir>在開始菜單中的默認目錄名稱</StartMenuDir><TargetDir>默認的安裝目錄</TargetDir>
</Installer>

在這里插入圖片描述 在這里插入圖片描述

還可以設置安裝程序的顏色、Logo等
更多詳細信息可參考:https://doc.qt.io/qtinstallerframework/ifw-globalconfig.html

    1. package.xml文件,其控制安裝程序的選擇組件許可協議等界面,如下圖所示
<?xml version="1.0" encoding="UTF-8"?>
<Package><DisplayName>一個模塊</DisplayName><Description>相關描述</Description><Version>1.0.0-1</Version><ReleaseDate>2024-07-01</ReleaseDate>
</Package>

在這里插入圖片描述

還可以增加許可協議以及自定義UI界面
更多詳細信息可參考:https://doc.qt.io/qtinstallerframework/ifw-component-description.html#package-information-file-syntax

2.2 制作程序壓縮包

    1. 編譯release版的程序,然后使用windeployqt復制相關庫,如下圖所示:
      在這里插入圖片描述
    1. 壓縮為7z, zip, tar.gz, tar.bz2 and tar.xz (可選)格式,放到相應的data目錄下
      在這里插入圖片描述

windeployqt的使用可參考:
Qt的windeployqt打包:https://blog.csdn.net/u014597198/article/details/77852483
Qt windeployqt.exe 打包qml:https://blog.51cto.com/u_15707179/6102502

2.3 制作程序安裝包

完成上述準備工作之后,就可以執行命令制作安裝包!

    1. 在對應的路徑下執行binarycreator命令
      binarycreator -c config\config.xml -p packages MyInstaller.exe
      在這里插入圖片描述
    1. 生成MyInstaller.exe,雙擊即可打開進行安裝
      在這里插入圖片描述
    1. 完結!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/46153.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/46153.shtml
英文地址,請注明出處:http://en.pswp.cn/web/46153.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

探索 TransactionSynchronizationManager.afterCommit 的原理及使用

在日常的企業級開發中&#xff0c;我們經常需要在事務提交之后執行一些操作&#xff0c;例如記錄日志、發送通知等。Spring 提供了一個方便的機制來實現這個需求&#xff0c;那就是 TransactionSynchronizationManager.afterCommit。本文將詳細探討 TransactionSynchronization…

【開發指南】HTML和JS編寫多用戶VR應用程序的框架

1.概述 Networked-Aframe 的工作原理是將實體及其組件同步到連接的用戶。要連接到房間&#xff0c;您需要將networked-scene組件添加到a-scene元素。對于要同步的實體&#xff0c;請向其添加networked組件。默認情況下&#xff0c;position和rotation組件是同步的&#xff0c;…

同三維T80004解碼器視頻使用操作說明書:高清HDMI解碼器,高清SDI解碼器,4K超清HDMI解碼器,雙路4K超高清解碼器

同三維T80004解碼器視頻使用操作說明書&#xff1a;高清HDMI解碼器&#xff0c;高清SDI解碼器&#xff0c;4K超清HDMI解碼器&#xff0c;雙路4K超高清解碼器 同三維T80004解碼器系列視頻使用操作說明書&#xff1a;高清HDMI解碼器&#xff0c;高清SDI解碼器&#xff0c;4K超清H…

未來的社交標桿:如何通過AI讓Facebook更加智能化?

在當今信息爆炸的時代&#xff0c;社交媒體平臺的智能化已成為提高用戶體驗和互動質量的關鍵因素。Facebook&#xff0c;作為全球最大的社交平臺之一&#xff0c;通過人工智能&#xff08;AI&#xff09;的廣泛應用&#xff0c;正不斷推進其智能化進程。本文將探討Facebook如何…

CAS的原理

CAS&#xff08;Compare-And-Swap 或 Compare-And-Set&#xff09;是一種用于實現并發編程中無鎖&#xff08;lock-free&#xff09;數據結構的原子操作。CAS 操作比較內存中的某個位置的當前值是否等于預期值&#xff0c;如果相等&#xff0c;則將其更新為新的值&#xff0c;否…

代碼隨想錄學習 54day 圖論 from代碼隨想錄

圖論總結篇 從深搜廣搜 到并查集&#xff0c;從最小生成樹到拓撲排序&#xff0c; 最后是最短路算法系列。至此算上本篇&#xff0c;一共30篇文章&#xff0c;圖論之旅就在此收官了。在0098.所有可達路徑 &#xff0c;我們接觸了兩種圖的存儲方式&#xff0c;鄰接表和鄰接矩陣…

B樹(B-Tree)數據結構

1. 什么是B樹&#xff1f; B樹&#xff08;B-Tree&#xff09;是一種多路搜索樹&#xff0c;用于存儲和檢索大量數據。它是自適應的&#xff0c;適用于各種存儲設備和各種數據量。B樹的特點是高效的搜索、插入和刪除操作&#xff0c;且可以在各種情況下保持樹的平衡。 2. B樹…

昇思25天學習打卡營第16天 | Vision Transformer圖像分類

昇思25天學習打卡營第16天 | Vision Transformer圖像分類 文章目錄 昇思25天學習打卡營第16天 | Vision Transformer圖像分類Vision Transform&#xff08;ViT&#xff09;模型TransformerAttention模塊Encoder模塊 ViT模型輸入 模型構建Multi-Head Attention模塊Encoder模塊Pa…

工業三防平板助力工廠生產數據實時管理

在當今高度數字化和智能化的工業生產環境中&#xff0c;工業三防平板正逐漸成為工廠實現生產數據實時管理的得力助手。這種創新的技術設備不僅能夠在惡劣的工業環境中穩定運行&#xff0c;還為工廠的生產流程優化、效率提升和質量控制帶來了前所未有的機遇。 工業生產場景通常充…

機器學習——數據預處理和特征工程(sklearn)

目錄 一、數據挖掘流程 1. 獲取數據 2. 數據預處理 3. 特征工程 4. 建模&#xff0c;測試模型并預測出結果 5. 驗證模型效果 二、sklearn中的相關包 1.sklearn.preprocessing 2.sklearn.Impute 3.sklearn.feature_selection 4.sklearn.decomposition 三、數據預處理…

【網絡安全】PostMessage:分析JS實現XSS

未經許可&#xff0c;不得轉載。 文章目錄 前言示例正文 前言 PostMessage是一個用于在網頁間安全地發送消息的瀏覽器 API。它允許不同的窗口&#xff08;例如&#xff0c;來自同一域名下的不同頁面或者不同域名下的跨域頁面&#xff09;進行通信&#xff0c;而無需通過服務器…

【Arduino IDE】安裝及開發環境、ESP32庫

一、Arduino IDE下載 二、Arduino IDE安裝 三、ESP32庫 四、Arduino-ESP32庫配置 五、新建ESP32-S3N15R8工程文件 樂鑫官網 Arduino官方下載地址 Arduino官方社區 Arduino中文社區 一、Arduino IDE下載 ESP-IDF、MicroPython和Arduino是三種不同的開發框架&#xff0c;各自適…

定制開發AI智能名片商城微信小程序在私域流量池構建中的應用與策略

摘要 在數字經濟蓬勃發展的今天&#xff0c;私域流量已成為企業競爭的新戰場。定制開發AI智能名片商城微信小程序&#xff0c;作為私域流量池構建的創新工具&#xff0c;正以其獨特的優勢助力企業實現用戶資源的深度挖掘與高效轉化。本文深入探討了定制開發AI智能名片商城微信…

.NET Framework、.NET Core 、 .NET 5、.NET 6和.NET 7 和.NET8 簡介及區別

簡述 在軟件開發的宇宙中&#xff0c;.NET是一個不斷擴展的星系&#xff0c;每個版本都像是一顆獨特的星球&#xff0c;擁有自己的特性和環境。作為技術經理&#xff0c;站在選擇的十字路口&#xff0c;您需要一張詳盡的星圖來導航。本文將作為您的向導&#xff0c;帶您穿越從.…

AIoTedge智能物聯網邊緣計算平臺:引領未來智能邊緣技術

引言 隨著物聯網技術的飛速發展&#xff0c;我們正步入一個萬物互聯的時代。AIoTedge智能物聯網邊緣計算平臺&#xff0c;以其創新的邊云協同架構&#xff0c;為智能設備和系統提供了強大的數據處理和智能決策能力&#xff0c;開啟了智能物聯網的新篇章。 智能邊緣計算平臺的核…

LLaMA-Factory

文章目錄 一、關于 LLaMA-Factory項目特色性能指標 二、如何使用1、安裝 LLaMA Factory2、數據準備3、快速開始4、LLaMA Board 可視化微調5、構建 DockerCUDA 用戶&#xff1a;昇騰 NPU 用戶&#xff1a;不使用 Docker Compose 構建CUDA 用戶&#xff1a;昇騰 NPU 用戶&#xf…

【Java項目筆記】01項目介紹

一、技術框架 1.后端服務 Spring Boot為主體框架 Spring MVC為Web框架 MyBatis、MyBatis Plus為持久層框架&#xff0c;負責數據庫的讀寫 阿里云短信服務 2.存儲服務 MySql redis緩存數據 MinIO為對象存儲&#xff0c;存儲非結構化數據&#xff08;圖片、視頻、音頻&a…

推薦一款處理TCP數據的架構--EasyTcp4Net

EasyTcp4Net是一個基于c# Pipe,ReadonlySequence的高性能Tcp通信庫,旨在提供穩定,高效,可靠的tcp通訊服務。 基礎的消息通訊 重試機制 超時機制 SSL加密通信支持 KeepAlive 流量背壓控制 粘包和斷包處理 (支持固定頭處理,固定長度處理,固定字符處理) 日志支持Pipe &…

Spring MVC 的常用注解

RequestMapping 和 RestController注解 上面兩個注解&#xff0c;是Spring MCV最常用的注解。 RequestMapping &#xff0c; 他是用來注冊接口的路由映射。 路由映射&#xff1a;當一個用戶訪問url時&#xff0c;將用戶的請求對應到某個方法或類的過程叫做路由映射。 Reques…

定制QCustomPlot 帶有ListView的QCustomPlot 全網唯一份

定制QCustomPlot 帶有ListView的QCustomPlot 文章目錄 定制QCustomPlot 帶有ListView的QCustomPlot摘要需求描述實現關鍵字: Qt、 QCustomPlot、 魔改、 定制、 控件 摘要 先上效果,是你想要的,再看下面的分解,順便點贊搜藏一下;不是直接右上角。 QCustomPlot是一款…