[英]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是將所有必需的依賴項都復制到可執行文件夾的應用程序。 准備在另一台計算機上運行。
步驟很簡單:
注意: linuxdeployqt是第三方。
2.靜態構建
靜態構建最后將是一個包含所有Qt代碼的單個二進制文件。 您可以將單個二進制文件運送給某人,無需其他庫即可運行它。 由於所有Qt代碼都鏈接在可執行文件內部,因此可執行文件更大。
步驟如下:
切換到文件夾並輸入
./configure -static -static-runtime
nmake
或make
靜態構建Qt。 qmake.exe
或qmake
。 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.