Qt文件太大了。

时间:2013-09-22 17:11:34

标签: c++ qt dll static executable

在搜索并尝试了几个小时后,我无法获得如何将库静态链接到我的exe。 所以我尝试将依赖项复制到exe文件夹中。 我做了一个测试程序,点击按钮就改变了标签。 那是14 MB。 我该怎么办 ? 我在用 icudt51.dll icuin51.dll icuuc51.dll libgcc_s_dw2-1.dll 的libstdc ++ - 6.dll libwinpthread-1.DLL Qt5Core.dll Qt5Gui.dll Qt5Widgets

3 个答案:

答案 0 :(得分:7)

我唯一看到的可能就是使用upx来压缩你的可执行文件。你甚至不会注意到差异。它会如此快速地解压缩并执行您的程序。

http://upx.sourceforge.net/

答案 1 :(得分:4)

您的问题有很多解决方案:

1-使用Qt 4.8.5,Qt 5和Qt 4.8之间没有太大区别。它会对你有所帮助,因为Qt 4.8.5没有编译,默认支持QtWebkits,这意味着不依赖于icudt51.dll icuin51.dll icuuc51.dll文件。

2-如果你想使用Qt 5,你需要在禁用webkit的情况下重新编译它,这也可以让你摆脱上面的依赖。 详情请查看: post

答案 2 :(得分:1)

如果您想静态链接Qt 5.1.1(没有第三方补丁),它只适用于源内构建。由于zlib克隆中的错误,影子静态构建失败。仅使用小部件的upx-ed简单可执行文件将低于5mb,更像是3mb。它与Qt 5和Qt 4在同一个球场。我正在使用MSVC2012进行静态编译,它运行得很好。这些是完全静态构建,这意味着Qt库是静态的,C / C ++运行时也是静态的。唯一的依赖是在系统DLL上。让每个人都轻松生活,虽然发布版本可能需要几分钟而且忘记关于在32位系统上构建。

静态构建的可执行文件的启动时间非常惊人。这几乎是瞬间的:)