在Windows上快速Qt C ++编译

我有一个使用Qt框架的大型项目,并试图找到在我的Windows安装上编译它的最快方法。

在我家的linux机器上,我使用了3年前的Linux Mint安装程序和一个双核心(机器是3年的时间,而不是Linux Mint安装),使用:make -j2两个核心都使用完整(ish)并且编译代码相对较快,从干净的构建大约10分钟。

然而,在我的工作Windows PC 2.0 GHz英特尔酷睿2四核(XP)我似乎无法让编译速度与我的Linux机器一样快。 该程序的开发人员文档建议使用Visual Studio C ++使用cmake生成的项目文件,但似乎只使用一个核心,并花费一个多小时才能在我的Linux安装上编译大约10分钟(从简单构建)。

我已经使用jom,但即使使用所有内核,它仍需要大约一个半小时,因为它似乎只在每个内核上使用少量的cpu。

对我来说没有意义的是,我的旧Linux机器构建得很快,但是四核心却一直在下滑。


以下几年已经帮助我们的Windows C ++ Qt的构建速度,多年来:

  • 定制我们的反病毒软件的设置,排除扫描我们的源代码,目标代码以及我们正在构建的所有头文件和库(Visual Studio,Qt等)的位置。 (有一个独立的AV检查,一夜之间运行,扫描那些排除的文件夹)
  • 在各种不同的AV软件包下比较构建速度。 (这是几年前,但结果,我们从McAfee转移到Sophos)
  • 确保在构建过程中访问的所有文件都在本地磁盘驱动器上(我们用来在网络驱动器上针对Qt构建,但是这会影响构建性能)
  • 确保将Visual Studio配置为一次执行多个编译步骤:此答案显示了执行该操作的各种方法。
  • 增加RAM的数量:我们发现现在4GB是绝对最小的,对于相当大的代码库
  • 从静态链接切换到动态链接,大幅缩短链接时间。
  • 移动到Visual Studio的新版本,因为MS提高了性能:请参阅此Visual Studio 2010页面,然后搜索“更快编译”
  • 我们的Windows版本仍然比Linux版本低,但我不能说这是一个公平的比较,因为我们的共享Linux构建盒比开发PC要高得多。

    (顺便说一句,如果你以前没有见过他们,那么值得阅读杰夫·阿特伍德关于开发人员个人电脑良好配置的评论:例如程序员的权利法案(Bill of Rights)

    更新日期:25/10/2012

    如果您使用的是Visual Studio 2008,但是使用DLL构建, 我目前不推荐迁移到Visual Studio 2010 :存在一个问题,即不必要地重新链接依赖项目,这会严重影响开发人员的工作效率,至少在.sln中使用20或所以.vcxproj文件:

  • 使用Visual Studio 2010构建时,不必要地重新链接依赖项目
  • 可能有这样的解决方案 - 稍后我会对它进行更新 - 请参阅在使用Visual Studio 2010构建时从属项目的不必要的重新链接,其中CORCOR说:

    如果其他人有类似的问题:

    关闭DLL项目的表现创建并仅为应用程序项目打开帮助!

    用VS2008,这似乎没有问题。


    这可能是一种解决方法,但我们使用Incredibuild,它将构建分布在多台机器上,这非常有效。 将制作时间从40分钟缩短到10分钟。 (我们有6个开发人员联系起来分担工作量)


    Visual Studio可以并行编译多个项目,但每个项目都是按顺序编译的。 因此,如果您编译一个包含2个项目的解决方案,那么两个进程将并行启动,但是如果您只有一个项目,那么只需一个进程即可启动,并且会按顺序编译源代码。

    如果您使用MingW,则可以按照以下主题进行操作:http://www.mail-archive.com/qt-creator@trolltech.com/msg00156.html

    在那里您会找到解决方案(安装MSys并在启动make时指定参数-j以指定并行作业的数量)。

    更简单的解决方案在这里:http://developer.qt.nokia.com/forums/viewthread/855/(在QtCreator工具 - >选项中指定Jom作为构建工具而不是NMake)

    链接地址: http://www.djcxy.com/p/85461.html

    上一篇: Fast Qt C++ compile on windows

    下一篇: Why does C++ linking use virtually no CPU?