2014-05-02 27 views
0

在NT构建环境a.k.a. Windows DDK构建环境中,通过指定build.exe的-M参数,可以使用多个处理器构建源树。它所做的是按照依赖顺序构建你的项目,并且当它构建每个项目时,它会启动多个线程来构建单个源文件,显然,首先构建预编译头文件以及其他需要完成的任务在其他源代码可以构建之前(midl等)为什么Visual Studio多处理器构建可以完成多个项目而不是多个源文件?

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

是否有人足够了解Visual Studio人员为什么不使用线程来构建像Windows民歌那样的单个源文件(或者至少以前用过)?

+0

退房:http://www.hanselman.com/blog/FasterBuildsWithMSBuildUsingParallelBuildsAndMulticoreCPUs.aspx和http://www.hanselman.com/blog/HackParallelMSBuildsFromWithinTheVisualStudioIDE.aspx – jessehouwing

+0

“DDK”给了我们,你是专门询问线索关于.vcxproj项目。是对的吗?如果是这样,你可能需要调整你的标签。 –

回答

0

我的问题的答案是元素。要在GUI中看到它,调出项目属性,选择“C++”,然后选择“常规”。如果将其设置为true,那么该项目将首先生成PCH文件,然后它将为每个c/cpp文件启动一个“cl.exe”进程,直到该机器具有的处理器数量为止。一旦所有文件都被构建完成,那么它将与一个进程链接。

这不同于Visual Studio也会启动多个msbuild副本以同时构建多个项目。

相关问题