在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的构建速度,多年来:
我们的Windows版本仍然比Linux版本低,但我不能说这是一个公平的比较,因为我们的共享Linux构建盒比开发PC要高得多。
(顺便说一句,如果你以前没有见过他们,那么值得阅读杰夫·阿特伍德关于开发人员个人电脑良好配置的评论:例如程序员的权利法案(Bill of Rights)
更新日期:25/10/2012
如果您使用的是Visual Studio 2008,但是使用DLL构建, 我目前不推荐迁移到Visual Studio 2010 :存在一个问题,即不必要地重新链接依赖项目,这会严重影响开发人员的工作效率,至少在.sln中使用20或所以.vcxproj文件:
可能有这样的解决方案 - 稍后我会对它进行更新 - 请参阅在使用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