2016-09-21 65 views
2

我正在查看一個Qt Windows應用程序,該應用程序硬編碼部署所需的Qt庫和文件,如Qt5Core.dll等。Qt最小部署

現在我知道有windeployqt工具來查找所有需要的文件。但是它產生的文件比目前包含的文件多得多。而且這款應用似乎運行良好,但沒有其中的很多應用。我有點不確定windeployqt如何確定需要什麼。真的需要一個合適的應用程序所有這些文件 - 還是windeployqt複製更多的文件比嚴格需要?換句話說,跳過它建議的一些文件有風險嗎?

+1

您可能想詳細說明您正在討論的確切文件。例如,如果您確定不使用該圖像格式,則可以安全地放棄某些特定的圖像格式插件。部署工具無法知道。 – jpnurmi

+0

我現在沒有真正考慮過任何特定的文件,更一般地說我可以完全知道*真正需要的windeployqt拷貝文件。當然,如果一個文件丟失,就很容易檢查應用程序是否啓動 - 我更擔心在應用程序的罕見用例中可能會導致運行時問題。 – Zitrax

+0

做一個靜態的Qt構建,讓你的生活變得輕鬆。最終結果是一個沒有外部依賴的單個可執行文件。自Qt 5.7以來,它也可以用於QML項目。對於core + gui/widgets +網絡,可執行文件大小約爲8 MB。 – dtech

回答

1

根本不需要使用windeployqt。要在開發過程中使用,您應該添加必要的可部署文件作爲目標,並將這些目標添加到INSTALLS。然後你做[n]make install並且部署所有東西。您可以將此目標添加到Qt Creator的項目配置中,以便生成它。

當然,這仍然是一個柺杖,因爲對於Windows,您實際上需要安裝程序:安裝程序編譯器的工作是收集所有必需的文件。

+0

是的,我有一個安裝程序。所以我正在考慮繼續使用硬編碼文件列表 - 但是從windeployqt輸出目錄中檢索它們,而不是在Qt安裝目錄中進行挖掘以找到最初放置的位置。 – Zitrax

+0

從Qt目錄中獲取它們要容易得多。他們的位置都是標準的。 –