减少Qt GUI应用程序的大小

时间:2009-05-22 08:58:48

标签: c++ qt dll static-libraries

我正在学习使用Qt Creator开发应用程序。我在Windows下构建了一个简单的应用程序,取决于使用mingwm10.dll,QtCore4.dll,QtGui4.dll,QtNetwork4.dll。 在QtQui4.dll之外我只使用了几个小部件,并且不需要所有其他的...是否可以缩小QtGui4.dll的大小或做其他事情以减少应用程序的部署大小? 静态链接怎么样?它会嵌入整个dll,还是只使用它的一部分? 还有可能Qt静态地和一些动态链接一些dll吗?

3 个答案:

答案 0 :(得分:13)

通过删除某些功能无法缩小QtGui4.dll。奇趣科技是having a look at this,但好的解决方案似乎很遥远:

静态链接,我认为它在Windows上非常有问题。每次我尝试,都是一场噩梦。

所以,看起来你已经被常规DLL困住了。你唯一能做的就是(我为我的Qt应用做的):

  • 使用UPX压缩您的DLL

  • 在安装程序中使用强力压缩

如果你已经UPX你的dll,你不能通过安装程序压缩进一步减少它,但这可以减少其他文件。

答案 1 :(得分:7)

最好的方法是使用configure手动配置Qt库。发出

configure --help

您将看到许多可能有助于减少磁盘和内存占用的选项。 E.g。

--no-stl
--no-exceptions

可以减少应用程序的占用空间。您还可以修改mkspec以使用更积极的编译器优化标志。

答案 2 :(得分:2)

如果您静态链接,最终会得到1.5GB的exe,并且您会牺牲插件等功能。所以除非你不想发布dll,否则它并不值得。但是,是的,您可以尝试Henrik的建议,也可以排除Webkit,这可能是最大的代码块。