2016-01-19 24 views
0

构建Qt应用程序的“共享构建”(构建中,exe在外部查找Qt dlls并且体积很小)需要非常快速(< 5分钟)Qt静态构建在虚拟机上花费很长时间(win7 32位)

“静态构建”(针对构建的静态Qt应用程序的链接,以后不需要dll)需要大约30分钟的版本构建和90分钟的调试构建。

这是完全不可避免的吗?

我相信它在链接阶段等待很长时间。有什么方法可以加速吗?它试图链接到每个可能的Qt库或什么?

QT标志我只添加了core,networkgui。它不应该花一个小时才能链接,为什么会发生这种情况?

我在虚拟机上使用QtCreatorMinGWWindows 7

编辑

它似乎有增加调试符号做。当我将调试符号添加到发布版本时,我也获得了90分钟的构建时间。

+2

它需要5分钟才能正常建立?这太多了,你的系统是什么? – headsvk

+0

@headsvk不错,实际上它比Windows 5还要小5分钟,它是Windows 7,32位,但是与静态构建的区别是令人困扰的 –

+0

是的,5分钟很可笑,也许你的意思是5秒。 – ForceBru

回答

1

构建Qt的应用程序(一个构建其中的exe查找 的Qt的DLL外部和尺寸小)的一个 “共享构建” 发生非常迅速(分钟)

A“静态构建“(针对构建的静态Qt应用程序的链接,稍后不需要 dll)需要大约30分钟的时间用于构建版本,90分钟用于构建调试版本。

这是完全不可避免的吗?

一般来说,使用VM意味着使用较少的CPU“磁头”。确保您的虚拟机使用足够的CPU资源。而“静态”编译时间表明你可能不仅仅在构建应用程序,而是Qt框架本身就是静态的。

你也有预建静态Qt使用一遍又一遍吗?或者,你重建它的“静态”的,一定要检查文章Building Qt 5 from Git出来:

多核建筑:

要使用NMAKE时加快建设,编译器可以指示 使用所有可用通过以下方式之一CPU内核:

  • 传递选项-MP Qt的配置
  • 设置环境变量CL(指定的Visual Studio编译器选项)到/ MP(在命令行:CL设置=/MP)
  • 使用工具jom而不是nmake。(使用JOM而不是NMAKE减少了编译时间相当位)

如果只是关于建立应用程序代码,而不是Qt的本身,只是介意你分配给虚拟机的CPU元首和选择JOM与nmake相比,只要它默认并行编译器执行。