2016-07-25 116 views
0

我正在編譯一個Qt Webkit應用程序,我知道webkitwidgets取決於一些公平的dll,但是每個Webkit應用程序都需要所有這些20 + dll的出貨嗎?或者我在這裏做錯了什麼。這是運行我的程序所需的每個DLL。Qt應用程序依賴於DLL的(它不需要?)

Too many dll's!

CFF Explorer只顯示了這些DLL的10:

enter image description here

的應用涉及到高額〜150MB,因此任何方式,以減少呢?我想靜態編譯,但不能以這種方式使用webkit。

+1

不想膨脹?不要選擇Qt。 – IInspectable

+0

確實,但是因爲我選擇了Qt來開發這個,所以我現在沒有改變,我想我可以在我的應用程序中找到一種不使用WebKit的方式,但是我需要js:/ – matthew9090

+0

@GregHewgill我需要js與web進行交互頁面,我正在顯示谷歌地圖 – matthew9090

回答

0

打開你的Qt命令promp。

mkdir installer 
cd installer 

將您生成的exe文件複製到此文件夾中。並運行:

windeployqt . 

該命令將複製您需要的所有文件。使用DependencyWalker獲取更多信息。 警告:一些dll被複制到其他操作系統版本中使用,所以不要刪除它,特別是如果你想讓你的應用程序兼容從Windows XP到Windows 10.

+0

https://i.gyazo.com/57c1e4e342f506cad9c6e9adf09809de.png我試過這更早和仍然是相同的代價 – matthew9090

+1

我建議將所有文件附加到您的安裝程序。從官方文檔:http://doc.qt.io/qt-5/windows-deployment.html「他的Windows部署工具旨在自動創建包含依賴項的可部署文件夾的過程(庫,QML導入,插件,這個工具可以在QTDIR/bin /目錄中找到,這些工具可以在Windows上運行,或者爲Windows桌面應用程序創建一個安裝樹,可以很容易地綁定到安裝包中。 windeployqt「。 – mohabouje

+0

還有很多不必要的文件包括在內。例如。如果您使用SQLite,windeployqt將複製所有的sql驅動程序。只保留SQLite驅動程序並刪除其餘部分。 – ninja

相關問題