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

有帮助吗?

解决方案

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

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

所以,看来您只能使用常规 DLL。你唯一能做的事情(我为我的 Qt 应用程序做的是):

  • 使用 UPX 压缩你的DLL

或者

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

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

其他提示

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

configure --help

你会看到许多选项,这可能有助于减少磁盘和内存占用。 E.g。

--no-stl
--no-exceptions

既可以减少应用程序的足迹。您还可以修改mkspec用更积极的优化标记你的编译器。

如果您链接静态你结束了一个1.5GB的exe和你牺牲像插件的一些功能。所以它不是很值得,除非你不想分配的DLL。但是,是的,你可以尝试Henrik的建议,也排除的Webkit这可能是代码的最大的一块。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top