2016-03-23 53 views
-1

我們公司現在使用Qt5.6來運行2個Qt應用程序,但在一段時間內會有更多(使用更新的Qt版本)。所以問題是,如何讓它們與不同的Qt版本一起工作?我們將無法重建之前發佈的所有Qt應用程序,尤其是在其中會有大量應用程序的情況下。我認爲將所有必需的Qt庫放在每個應用程序中並不是一個好主意,因爲存儲庫大小將會快速增長。我認爲在同一個地方有許多相同版本的Qt dll是不明智的。只要我知道,.NET使用程序集安裝程序解決了不同版本的問題,但我認爲它不能幫助我使用Qt。所以任何想法如何解決它將不勝感激。由於在Qt應用程序之間共享Qt庫

UPD:系統爲Windows

+0

我們有同樣的問題。首先我們把所有的dll都放在一箇中央目錄中,但它運行得並不好。現在我們用自己的一套dll發佈每個應用程序(磁盤空間並不重要,除了某些木製系統),並且dll不會進入回購 – Zaiborg

+0

如果我們有2-5個應用程序,則可能是我們的解決方案,而不是更多...但是,我們有許多演示應用程序適用於我們的設備,它們雖小又簡單,但必須按照標準隨設備一起發貨,即使它們不會被使用太多。所以我們承擔不起每個這樣的應用程序與50 + MB的dll基地。 –

+0

您可以將演示應用捆綁到一個包/目錄中。所以它會全部使用相同的二進制文件 – Zaiborg

回答

0

其實答案非常簡單,你可以,只要他們是二進制兼容的一個出貨的Qt版本(二進制)。每個版本Qt都宣佈二進制兼容或不兼容,所以如果出於任何原因你需要切換到較新的版本並用新的不兼容版本發佈新的應用程序,你可能想要發佈一個新的Qt DLL鏈。這可以以不同的方式實現(取決於你安裝的佈局),例如你可以有一個基於你將擴展的基於Qt版本的子目錄的通用lib目錄。 (當然,你需要合適的路徑上設置的,然後運行不同的應用程序):

應用\ 應用\ app01 應用程序\ app02 ... 的lib \ LIB \ Qt5.6.1 的lib \ Qt5.7.0

等,那麼你就會有(例如)來包裝你的exe文件爲.bat,如:

的run.bat

SET PATH = .... \ LIB \ Qt5.6.1 \ app01。 exe

等。

這一切都取決於你的安裝佈局和目標

+0

我認爲它可以幫助,謝謝。 –

相關問題