使用Qt进行静态构建(独立应用程序)

时间:2013-09-22 06:11:21

标签: c++ qt static

我开始使用Qt了一会儿。我已经下载了Windows 32位版本(666mB),没有别的。我做了一个简单的计算器应用程序。 当我从Qt创建者运行它时,应用程序运行,但内置的exe显示dll丢失。 我不想使用依赖walker。我想创建一个静态构建(我读过它,但我无法让它运行)

我的目标是制作一个功能齐全的计算器(无安装程序),而无需手动添加依赖项。 我已经阅读了有关configure -static的内容,但我不明白如何使用它。 在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:8)

你需要自己从源代码构建Qt。您肯定想要维护两个Qt版本。对于调试,您应该使用共享构建,因为它具有合理的链接时间。对于发布,您应该使用静态构建,肯定使用链接时间代码生成来保持可执行文件更小,并期望一个简单的应用程序的构建需要大约一分钟。这是因为“链接”确实为Qt和您的应用程序生成机器代码,并且代码特定于您的应用程序,从而使其通常表现更好。

这样做的方式是在不浪费磁盘空间的情况下为源的多个副本使用源外Qt构建。到目前为止,静态Qt 5.1.1版本已被破坏,因此以下仅适用于使用Visual Studio的Qt 4。

  1. 将来源下载到C:\Qt\4.8.5

  2. 创建C:\Qt\4.8.5-shared。打开visual studio控制台,CD,然后使用您可能拥有的任何其他选项运行C:\Qt\4.8.5\configure.exe -shared。然后使用nmakejom

  3. 构建它
  4. 创建C:\Qt\4.8.5-static。打开visual studio控制台,CD,然后使用您可能拥有的任何其他选项运行C:\Qt\4.8.5\configure.exe -static -ltcg。然后使用nmakejom

  5. 构建它

    您需要link the plugins statically to your release build of the application

    Qt Creator可以轻松地并行使用多个Qt版本。我经常使用Qt 4和Qt 5进行构建,包括静态和共享,以及对Qt 5的本地修复,以使静态构建工作。