2009-05-22 90 views
12

我正在學習使用Qt Creator開發應用程序。我在Windows下構建了一個簡單的應用程序,取決於使用mingwm10.dll,QtCore4.dll,QtGui4.dll,QtNetwork4.dll。 Out of QtQui4.dll我只使用了一些小部件,並不需要其餘的部分......是否可以縮小QtGui4.dll的大小或者採取其他措施來減少應用程序的部署大小? 靜態鏈接怎麼樣?它會嵌入整個DLL,還是隻嵌入其中的一部分? 也可以用Qt靜態鏈接一些dll和動態地鏈接一些dll嗎?減少Qt GUI應用程序的大小

回答

10

這是不可能通過刪除一些函數來縮小QtGui4.dll。奇趣科技是having a look at this,但好的解決方案似乎相當遙遠:

靜態鏈接,我認爲這是非常有問題的Windows。每次我嘗試時,這都是一場噩夢。

因此,它看起來像你堅持常規的DLL。你唯一可以做的事情(我爲我的Qt應用程序做的是):

  • 使用UPX在你安裝程序壓縮您的DLL

  • 使用強壓縮

如果你已經UPX你的DLL,你不能通過安裝壓縮進一步降低它,但這可以減少其他文件。

+1

是的,「UPX -9 QtGui4.dll」是要去的方式:) – 2009-05-22 09:50:44

+0

有趣的提示,我從來沒有用過UPX。 – PowerApp101 2009-05-22 11:37:37

5

最好的方法是用configure手動配置Qt庫。通過發行

configure --help 

您會看到許多選項,可能有助於減少磁盤和內存佔用量。例如。

--no-stl 
--no-exceptions 

可以減少應用程序的佔用空間。你也可以修改mkspec來爲你的編譯器使用更積極的優化標誌。

1

如果你靜態鏈接你最終得到一個1.5GB的EXE,你犧牲了一些功能,如插件。所以它不是真的值得,除非你不想分發dll。但是,你可以嘗試Henrik的建議,也可以排除Webkit,這可能是最大的代碼塊。

相關問題