我希望有人指出我们正在经历的问题或解决方法。
使用 /MP 编译项目时,似乎只能同时编译同一文件夹中的文件。我使用进程资源管理器滑动命令行并确认行为。
项目过滤器似乎对同时编译的内容没有任何影响。
磁盘上的项目结构:
Folder\
project.vcxproj
source\
foo.cpp
foo1.cpp
other_folder\
bar.cpp
bar1.cpp
bar3.cpp
初始进程树:
MSBuild.exe
cl.exe ( passed: source\foo.cpp source\foo1.cpp )
cl.exe ( passed: source\foo.cpp )
cl.exe ( passed: source\foo1.cpp )
在 cl.exe 的 2 个子实例完成后,父级关闭并出现以下进程树:
MSBuild.exe
cl.exe ( passed: other_folder\bar.cpp other_folder\bar1.cpp other_folder\bar2.cpp )
cl.exe ( passed: other_folder\bar.cpp )
cl.exe ( passed: other_folder\bar1.cpp )
cl.exe ( passed: other_folder\bar2.cpp )
我们的源代码很好地组织在许多级别的嵌套文件夹中,这些文件夹与磁盘上标题的布局相匹配——我不想放弃它来利用 /MP。