C++ 如何使用Eclipse/CDT并行构建项目(不是并行编译!)

C++ 如何使用Eclipse/CDT并行构建项目(不是并行编译!),c++,eclipse,eclipse-cdt,C++,Eclipse,Eclipse Cdt,我有几个项目都依赖于一个基本的库。现在,当我在这个基本库中更改头文件时,我必须重建所有依赖的项目。目前Eclipse/CDT构建了一个又一个项目。如何并行构建所有这些项目 请注意,我已经为每个项目使用了-j(并行编译)选项。但这还不够,因为: 确实有很多可用的CPU(对于大多数项目来说,不仅仅是源文件)和 由于并行编译,链接需要比编译长得多,而且(据我所知)不能使用多线程 我不认为当前版本的EclipseCDT可以并行地构建项目,但是您可以通过使用EclipseCDT Makefile项目来构建

我有几个项目都依赖于一个基本的库。现在,当我在这个基本库中更改头文件时,我必须重建所有依赖的项目。目前Eclipse/CDT构建了一个又一个项目。如何并行构建所有这些项目

请注意,我已经为每个项目使用了-j(并行编译)选项。但这还不够,因为:

  • 确实有很多可用的CPU(对于大多数项目来说,不仅仅是源文件)和
  • 由于并行编译,链接需要比编译长得多,而且(据我所知)不能使用多线程

  • 我不认为当前版本的EclipseCDT可以并行地构建项目,但是您可以通过使用EclipseCDT Makefile项目来构建多个二进制文件(库和可执行文件)来实现相同的效果


    生成此类项目的一种简单方法是使用with generator。然后,如果您将代码>/Ur/bin /StudioJ/COD>指定为构建命令,其中代码“>N<代码”是Project属性中并行作业的数量,它将并行构建您的目标(不仅是源文件)。

    项目属性> C++ +Budio>行为>启用并行构建< /P>这是完美的借口,为什么要改变它?所有依赖于您的库的项目是否可以依次成为虚拟项目的依赖项,然后可以并行构建虚拟项目?还是我在这里遗漏了什么?@Xeo:不能!等待再也没有了@vpit3833:关键是,eclipse编译并链接项目1,当它比项目2和项目3完成时。。。当它编译时,我有约40%的负载(多亏了-j,但仍然不是100%,因为通常没有足够的源文件让所有内核保持忙碌),当它链接约5%的负载(15个空闲内核…)时。因此,总负荷约为15%。但我天真的头脑希望它在100%负载下能快6倍:你必须在eclipse中编译DDo吗?也许如果您从命令行编译基本库,那么您可以简单地使用基本库对象(一些makefile magic?)启动多个线程。我们从eclipse管理的构建迁移到用作生成器的cmake,然后从makefile迁移到ninja——这两个决策都显著地提高了构建时间。