簡體   English   中英

如何在Linux和Windows上發布Qt / C ++應用程序?

[英]How to release a Qt/C++ application on Linux and Windows?

我使用Qt開發了用於圖形界面的C ++應用程序,現在我想針對Linux和Windows發行它。 我一直在瀏覽文檔,論壇和教程,但我真的不明白需要做什么...

我對使用的不同術語感到很困惑:發布和部署之間有什么區別? 您何時需要安裝程序,以及在需要時如何創建安裝程序?

創建Windows .exe的不同步驟是什么? 及其等效於不同版本的Linux(Debian,Ubuntu,Ubuntu Mate)?

我目前在Ubuntu上,並使用Qt Creator對該應用程序進行編碼。

據我所知,我需要部署共享庫。

任何對初學者的幫助,解答,指南或文檔都將提供很大的幫助,非常歡迎:)

有幾種方法可以部署您的應用程序

1.使用windeployqt / linuxdeployqt部署應用程序

這是最簡單的方法,windeployqt或linuxdeployqt是將所有必需的依賴項都復制到可執行文件夾的應用程序。 准備在另一台計算機上運行。

步驟很簡單:

  1. 在發布模式下編譯二進制文件
  2. 打開Qt開發人員控制台,然后鍵入windeployqt“ C:\\ folder \\ of \\ your \\ executable”(linuxdeployqt將非常相似)
  3. 在另一台計算機上運行該應用程序所需的所有庫都將復制到您的應用程序文件夾中。 您可以創建檔案並將其發送給其他人。

注意: linuxdeployqt是第三方。

2.靜態構建

靜態構建最后將是一個包含所有Qt代碼的單個二進制文件。 您可以將單個二進制文件運送給某人,無需其他庫即可運行它。 由於所有Qt代碼都鏈接在可執行文件內部,因此可執行文件更大。

步驟如下:

  1. 下載Qt源代碼
  2. 解壓縮到文件夾
  3. 打開已安裝的編譯器(即MingW或MSVC)的開發者控制台。
  4. 切換到文件夾並輸入

    ./configure -static -static-runtime

  5. 完成配置后,鍵入nmakemake靜態構建Qt。
  6. 構建過程完成后,在Qt Creator中創建一個新工具包,然后從您的源代碼文件夾中選擇新的qmake.exeqmake
  7. 在項目設置中選擇套件,以構建不需要其他庫的靜態可執行文件。

3.離線/在線安裝程序

此步驟需要一些閱讀和微調。 Qt帶有IFW (安裝程序框架),您可以在其中創建在線和離線安裝程序。 安裝程序將包含您的可執行文件和所有依賴項的.7z文件。 該安裝程序使用戶更舒適。 它可以創建快捷方式,檢查可用磁盤空間等。

IIRC您需要為MSVC靜態構建安裝程序,或者必須附帶運行時庫。 如果使用MingW構建,則可能不需要任何運行時庫。

由您決定選擇哪種方法。 如果您擁有商業許可證,則可以將所有封閉源作為靜態版本發布,但通常最好將其作為動態版本發布,尤其是在使用OpenSSL的情況下,用戶可以根據需要快速交換易受攻擊的庫。

據我所知,我需要部署共享庫。

可能不是。 首先,請注意,您通常不針對Linux發布,而是針對特定的Linux發行版。 細節很重要,在Ubuntu 15,Ubuntu 16,Debian 9,Fedora等上有所不同。

(我猜想在Windows上可能是相同的:Windows的版本可能很重要,因此Windows 7與Windows 10並不相同)

您應該更喜歡在目標Linux發行版上使用已安裝的Qt(其次要版本與另一個發行版有所不同)。

您可能要為目標Linux發行版的軟件包管理器制作一個軟件包 在Debian或Ubuntu上,這將是.deb軟件包

(您無法確定適用於Ubuntu的.deb是否適用於Debian,但通常是這種情況)

包管理器處理依賴關系。 因此,如果您的用戶安裝了您提供的正確的.deb ,則程序包管理器將失敗,或者(通常)下載並安裝所有必需的依賴項(例如Qt)。

(或者,您可以分發源代碼(也許作為免費軟件 ),而將其編譯任務留給用戶或分發者)

您要針對的特定發行版已很好地說明了如何制作Linux軟件包,這是一個不同的問題。 對於Debian,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM