0

在 NT 构建环境(也称为 Windows DDK 构建环境)中,您可以通过在 build.exe 中指定 -M 参数来使用多个处理器构建源代码树。它所做的是按依赖顺序构建你的项目,当它构建每个项目时,它会启动多个线程来构建单独的源文件,显然,首先构建预编译的头文件,以及任何其他需要完成的事情在可以构建其余源代码之前(midl 等)

Visual Studio/MSBuild 采用了非常不同的方法。它使用多个线程构建项目,但仅按顺序构建单个源文件。当您有很多小项目时,这非常有用。但是,当您的项目包含大量源文件时,这会令人沮丧。

有没有人知道为什么 Visual Studio 的人不使用线程来构建单独的源文件,如 Windows 人所做的(或至少习惯于)?

4

1 回答 1

0

我的问题的答案是元素。要在 GUI 中查看它,打开项目属性,选择“C++”,然后选择“General”。如果将其设置为 true,则该项目将首先构建 PCH 文件,然后它将为每个 c/cpp 文件启动一个“cl.exe”进程,直至机器拥有的处理器数量。构建完所有文件后,它将与一个进程链接。

这与 Visual Studio 还将启动 msbuild 的多个副本以一次构建多个项目的事实不同。

于 2014-11-08T02:50:00.503 回答