如何在命令行上构建?
/MP设置来自项目文件,因此在命令行上进行设置作用是一样的,它是整个MSBuild的一部分,在命令行上构建和在Visual Studio中构建是一样的效果吗?在Visual Studio中设置的全局并行设置不会影响到命令行,你必须亲自给msbuild.exe传递/m参数,这个参数是可选的,如果你不设置,它就使用CPU的数量,但和Visual Studio开箱即用的特性不一样,在命令行中如果不指定/m参数,它只会使用1颗CPU,这个问题可能在将来的版本中会得到修正。
图8 命令行构建参数
如果想给/MP选任意的值,你可以设置一个环境变量,或象Visual Studio那样传递一个属性CL_MPCount。
在每个项目上都设置/MP是很烦人的,怎么才能提高设置效率?
你可能想在多个项目上使用/MP,但你又不想在每个项目上都设置一遍,Visual Studio解决这类问题的办法是使用属性表。首先从“视图”菜单打开“属性管理器”,根据你使用的设置它的确切位置可能不一样,下面是一个C++项目设置的位置。
图9 视图菜单中的属性管理器
在一个项目上点击右键,选择“添加新的属性表”:
图10 给项目添加新的属性表
我给它取了一个名字叫做“MultiprocCpp.props”,你将会看到该项目的所有配置都将添加这个属性表,在它上面点击右键,你将看到与项目相同的属性窗口,但这个时候你编辑的是属性表,再次将“Multi-processor Compilation”设为“YES”。关闭属性窗口,在属性管理器中选择属性表,然后点击“保存”。