C++ 减少Qt GUI应用程序大小
我正在学习使用Qt Creator开发应用程序。我已经在Windows下构建了一个简单的应用程序,依赖于使用mingwm10.dll、QtCore4.dll、QtGui4.dll、QtNetwork4.dll。 在QtQui4.dll中,我只使用了几个小部件,不需要所有其他的。。。是否可以缩小QtGui4.dll的大小,或者执行其他操作以减小应用程序的部署大小? 静态链接怎么样?它将嵌入整个dll,还是只嵌入使用的部分dll?C++ 减少Qt GUI应用程序大小,c++,qt,dll,static-libraries,C++,Qt,Dll,Static Libraries,我正在学习使用Qt Creator开发应用程序。我已经在Windows下构建了一个简单的应用程序,依赖于使用mingwm10.dll、QtCore4.dll、QtGui4.dll、QtNetwork4.dll。 在QtQui4.dll中,我只使用了几个小部件,不需要所有其他的。。。是否可以缩小QtGui4.dll的大小,或者执行其他操作以减小应用程序的部署大小? 静态链接怎么样?它将嵌入整个dll,还是只嵌入使用的部分dll? 使用Qt是否可以静态链接一些dll,动态链接一些dll?不可能通过删
使用Qt是否可以静态链接一些dll,动态链接一些dll?不可能通过删除一些函数来收缩QtGui4.dll。Trolltech是,但好的解决方案似乎相当遥远: 静态链接,我认为它在windows上是非常有问题的。每次我尝试,都是一场噩梦 所以,看起来您被常规DLL卡住了。您唯一可以做的事情(我为我的Qt应用程序所做的是):
- 用于压缩DLL
- 在安装程序中使用强压缩
如果已经对dll进行了UPX,则无法通过安装程序压缩进一步减少dll,但这可以减少其他文件。最好的方法是使用configure手动配置Qt库。发行
configure --help
您将看到许多可能有助于减少磁盘和内存占用的选项。例如
--no-stl
--no-exceptions
两者都可以减少应用程序的占用空间。您还可以修改mkspec,以便为编译器使用更具攻击性的优化标志。如果静态链接,最终会得到一个1.5GB的exe,并牺牲一些插件等功能。因此,除非您不想分发DLL,否则这并不值得。但是,是的,您可以尝试Henrik的建议,也可以排除可能是最大代码块的Webkit。是的,“UPX-9 QtGui4.dll”是一种方式:)有趣的提示,我以前从未使用过UPX。谢谢!用这种方式归档的GUI Qt应用程序的最小占用空间是多少?我认为可以删除一些不需要的功能。请参见原始问题的上下文,排除WebKit没有任何区别,因为他没有使用它(仅核心、Gui、网络模块)。