Visual Studio 2010, how to build projects in parallel on multicore

后端 未结 5 1742
暖寄归人
暖寄归人 2020-12-13 07:32

I have a big solution with more than 40 projects. Almost half of them are test projects. In my project we use both Code Contracts, Code Analysis, Style Analysis. I want to

相关标签:
5条回答
  • 2020-12-13 08:00

    This is now built in for Visual Studio 11 for all languages, not just C++. "Visual Studio 2010 included an option for "maximum number of parallel project builds." Although there was no indication of any restriction, this IDE option only worked for C++ projects. Fortunately, this restriction no longer applies to Visual Studio 11" from www.visualstudiomagazine.com

    0 讨论(0)
  • 2020-12-13 08:01

    I know that there is a clone of nmake that supports the -j switch to compile in parallel:

    http://qt.gitorious.org/qt-labs/jom

    and there is also a hack for MSbuild, just google it. I also know there is a tool that supports building on multiple machines and perhaps also on multiple cores, but I dont remember its name at the moment.

    hope this helps.

    0 讨论(0)
  • 2020-12-13 08:12

    Then real answer you are looking for is to add the /MP compiler flag to the CXX compiler flags.

    In Visual Studio Under the project property page> C\C++ >General Multi-processor compilation just type Yes (/MP). Now it will build all 40 projects in parallel on each of the cores

    0 讨论(0)
  • 2020-12-13 08:15

    You could launch the build in MSBuild in parallel by :

    • Setting the attribute BuildInParallel of MSBuild task to true

      <Target Name="RunInParallel">
        <MSBuild BuildInParallel="true"
                 Projects="@(Projects)"
                 Targets="RunCodeAnalysis">
        </MSBuild>
      </Target>
      
    • Or calling msbuild with the parameter /maxcpucount:X where X specifies the number of worker processes that are involved in the build. This solution better suits your need.

      msbuild [YourSolutionFile.sln] /maxcpucount:4 /p:Platform=AnyCpu;Configuration=Debug;
      

    Scott Hanselman wrote a post on that, if you want to integrate (kinda) the process into Visual studio as an external tool.


    For C++ projects you could configure multiprocessor build directly in Visual Studio :

    Tools | Options | Projects and Solutions | Build and Run

    0 讨论(0)
  • 2020-12-13 08:18

    In Visual Studio: Tools | Options | Projects and Solutions | Build and Run. This should default to your CPU count.

    From the command line: msbuild /maxcpucount[:n] (is n is not specified, then it will use the CPU count).

    0 讨论(0)
提交回复
热议问题