Qt 动态链接库过大


最近使用Qt制作了一个小工具,但是找出了所有的链接库打包后发现有20多M,只是用了QtGUi,QtCore,QtWidget三个链接库,为什么Qt 的链接库这么大。能精简吗?精简后最小能达到多少?

QT pyqt C++

Timez 10 years, 6 months ago

看你列出三个链接库,猜得到你用的是 Qt5, Qt5 拥有很多强大的功能,你确定你的小工具都用到了?如果没有用到 Qt5 特有的功能, 请使用 Qt4 ,仅需两个动态链接库:QtCore4.dll(2.86M), QtGui4.dll(9.56M),相比之下,精简了近一半。

什么,13M 多还是太大?进一步精简,方法很简单: 自己动手编译 Qt 。在configure的时候去掉RTTI,异常,Qt3支持,优化选项用最小大小(性能差不了太多)。如果你的程序真的很小,那么可以 直接静态链接 ,这样就更小了。

那么最小能达到多小?如果如你所说,只有一个空白窗体的话,静态链接可以缩减至 5M。(请参考 Minimum size of static-linked Qt GUI app? )。如果坚持使用动态链接,上面提到的两个 dll 加起来可以缩减至 6M 多。(具体编译参数设置请参考 Building Qt Static (and Dynamic) and Making it Small with GCC, Microsoft Visual Studio, and the Intel Compiler )

緋弾Dアリア answered 10 years, 6 months ago

“为什么Qt 的链接库这么大?”,Qt这种东西是用来方便开发的,提升工作效率的。并不是追求体积小的。对于一个几百兆的软件,20M并不多;但对于一个小工具,20M看起来就显得多了,而已。

“能精简吗?”不能精简,就这么着了。

月面戦争D英霊 answered 10 years, 6 months ago

Your Answer