2009-05-22 49 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,这可能是最大的代码块。

相关问题