15

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

4

3 回答 3

13

无法通过删除某些函数来缩小 QtGui4.dll。奇趣科技正在研究这个,但好的解决方案似乎很遥远:

静态链接,我觉得在windows上是很成问题的。每次我尝试,这都是一场噩梦。

因此,您似乎被常规 DLL 卡住了。你唯一能做的(我为我的 Qt 应用程序做的是):

  • 使用UPX压缩您的 DLL

或者

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

如果您已经对 dll 进行了 UPX,则无法通过安装程序压缩进一步减少它,但这可以减少其他文件。

于 2009-05-22T09:39:20.630 回答
7

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

configure --help

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

--no-stl
--no-exceptions

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

于 2009-05-22T11:32:25.333 回答
2

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

于 2009-05-22T11:41:50.230 回答