2010-12-06 73 views
6

我做了一個小應用程序,並構建了發佈版本。現在我想將其上傳到我的網站。我以前從來沒有用Qt做過這個,所以我不確定我應該在二進制文件中包含什麼。人們需要什麼來運行我的應用程序?

如何確定哪些DLL應該包含在我的應用程序中?我在哪裏得到它們?我正在運行Windows,但我也想知道如果我想發佈Linux版本,我應該做些什麼。

+3

對於linux只是給他們的來源,讓他們編譯它。 – Falmarri 2010-12-06 20:24:13

+3

@Falmarri:這樣的意識形態觀點。我相信你很清楚這通常是不可能的。 – Goz 2010-12-06 20:25:58

回答

9

對於Windows:

可以使用的Dependency Walker就看你應該做的船是Qt庫(或其他)。這是包含在Visual Studio中的depends.exe可執行文件,但你可以從單獨下載:http://www.dependencywalker.com/

加載您的應用程序成,它會列出所有,預計在運行時模塊。您可能還必須發佈與編譯器兼容的Visual C++ Runtime Redistributable,該編譯器與構建可執行文件的編譯器(如果它是VC++)兼容。

請注意,dependency walker並沒有考慮像Qt插件這樣的東西。一個例子就是QtAssistant系統(用於幫助菜單類型的功能),Qt4依賴於Qt的sqlite功能,這通常是作爲一個插件構建的(如果我記得的話,就是qtsqlite4.dll)。

對於Linux:

這是棘手,因爲在Linux發行更寬差距。如果您想要發佈源代碼,您當然可以使用GNU構建系統,但是如果您要發佈二進制代碼,並且想要支持各種發行版,則最好爲每個想要發佈的平臺構建程序包。


在我的過去,我在一家公司轉而使用cmake和設置所有的項目後,並建立檔案,使用的生成和構建針對不同的操作系統軟件包。在Windows上,這意味着要連接Inno Setup,對於類Unix系統,cmake知道如何生成諸如可安裝的shell腳本之類的東西。絕對讓更輕鬆


我們的QA部門將在我們支持的平臺,完全乾淨的虛擬機實例測試我們的軟件,並查看是否有缺失。

2

如果你在談論DLL,我認爲它是關於Windows的。

使用Dependency Walker來查看DLL依賴關係。

或者...採取一個乾淨的系統,沒有安裝開發工具,並把你的可執行文件,嘗試在那裏運行,並查看哪些DLL是必要和不存在的報告。將DLL放在可執行文件附近。

0

對於Linux版本,您可以爲每個Linux分支創建安裝程序的平臺目標版本,也可以讓人們從源代碼編譯。如果您的應用程序是新的,您唯一的曝光方式就是爲人們提供現成的安裝程序和目標安裝程序。新用戶不喜歡從源代碼編譯軟件包。

您可以先試用debian(.deb)和redhat(.rpm)軟件包。這兩個是非常受歡迎的線條,並會讓你嚐到一些東西。

相關問題