2012-09-14 19 views
2

我開始考慮部署我一直在開發的Qt應用程序,但在此之前,我從來沒有必要部署任何C++應用程序。首次部署Qt應用程序,動態鏈接?

我希望能夠將我的產品作爲預編譯的可執行文件發佈,該可執行文件與Linux/Windows的共享庫文件(Qt)動態鏈接,以便有一個可執行文件在其自己的子目錄中查找庫,而不是由於其他Qt產品而可能安裝的庫。

這是可能的東西嗎?或者是否必須單獨安裝Qt庫文件才能與應用程序鏈接?我想避免要求最終用戶在他們的系統上安裝ANYTHING,同時避免靜態鏈接。

回答

3

這是Qt的正常行爲。如何做到這一點很大程度上取決於你的構建系統。

如果您使用CMake,您可以使用CPack生成安裝程序。這是一個link將所需的共享庫添加到安裝程序。 CPack爲Linux,Windows和Mac OS X提供許多不同類型的安裝程序。

您也可以使用NSIS生成您自己的安裝程序。這涉及更多但可行。關於如何部署使用其庫的應用程序,Qt有documentation

在我的公司,我們做CPack和NSIS。 CPack的方式要簡單得多,網上有更多的例子。

+0

但我不想安裝,應用程序需要可以由沒有管理權限的人使用。 我想要一個靜態鏈接應用程序的好處,但沒有靜態鏈接(授權問題)。 –

+2

即使在這種情況下,您所做的只是提供像安裝程序那樣的文件,但不會將其放置在受限制的位置。例如,您可以讓Windows上的安裝程序請求用戶權限並將這些文件放在桌面上。只要你不做需要特權訪問的事情(即寫入註冊表)。 – Keith

+0

我不理解你的觀點?爲什麼我需要安裝程序才能安裝到桌面? –