2

After having searched and tried for hours, I could not get how to statically link the libraries to my exe. So I tried to copy the dependencies into the exe folder. I made a test program that changed the label on the click of a button. That was 14 mb. what should I do ? I am using icudt51.dll icuin51.dll icuuc51.dll libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll Qt5Core.dll Qt5Gui.dll Qt5Widgets

4

3 回答 3

7

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

http://upx.sourceforge.net/

于 2013-09-22T17:24:41.310 回答
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

于 2013-09-23T13:30:57.337 回答
1

如果您想按原样静态链接 Qt 5.1.1(没有 3rd 方补丁),它仅适用于源内构建。由于 zlib 克隆中的错误,影子静态构建失败。仅使用小部件的升级后的简单可执行文件将小于 5mb,更像是 3mb。对于 Qt 5 和 Qt 4,它在同一个球场上。我正在使用 MSVC2012 静态编译它们,它工作得很好。这些是完整的静态构建,这意味着 Qt 库是静态的,而 C/C++ 运行时也是静态的。唯一的依赖关系是系统 DLL。让每个人的生活都变得轻松,尽管发布构建可能需要几分钟并且忘记在 32 位系统上构建。

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

于 2013-09-24T02:16:00.900 回答