Mik*_*ike 6 cmake visual-studio-2010
我们有一个160+项目的VS2010 C++解决方案.我从一个完全空的输出目录和"Build Solution"开始.我将IDE构建详细程度设置为Normal.在构建过程中,我会看到"输出"窗口.(VS2010设置为一次构建2个项目,每次只编译1个.cpp文件.)
大多数项目显示编译器(每个.cpp文件名)和库管理器/链接器的大量输出行.
但是 - 一些项目(最近一次运行中的10项)显示出极低的输出.例:
29>------ Build started: Project: DebuggingService (LHFramework\DebuggingService\DebuggingService), Configuration: Debug x64 ------
29>Build started 8/17/2011 3:23:24 PM.
29>
29>Build succeeded.
29>
29>Time Elapsed 00:00:00
Run Code Online (Sandbox Code Playgroud)
显示这些症状的项目未被禁用,它们有许多.cpp文件,以及由此版本生成的相应结果文件(.obj,.lib,.exe等).
当我清空构建输出目录并从头开始重新运行构建时,一组不同的项目可能会显示这些症状!
似乎那些项目构建=正在发生(显然超过00:00:00),但跳过了"输出"窗口中的显示.我不知道任何影响构建输出的项目设置:我认为它只受IDE级别设置的控制.在任何情况下,我们对所有项目使用相同的设置,因此它们都应显示相同级别的输出细节.
.log文件只包含上面输出的最后五行,减去前导"29>"指示符.创建了各种.tlog文件:3个来自"cl",3个来自"custombuild",3个来自"lib".我几乎可以弄明白他们的意思.:)
可能重要注意:我们的.sln/.vcxproj/etc文件由CMake生成.我没有设置它,但所有项目都有一个自定义构建步骤来运行CMake来确定需要完成哪些工作(编译/链接/等).
那么......这是VS2010的已知问题吗?或者我们偶然发现了一些VS2010 < - > CMake互动?
麦克风
在我看来,项目依赖项导致项目多次触发构建,而在第二次调用时,项目将被跳过,因为不需要重新构建。时间差异可以解释为什么您每次都会看到具有此行为的不同项目。
在日志中,是否有项目的先前实例显示了00:00:00已用时间?这将是一个很好的指标,表明它是否是以前建造的。
您还可以通过转到“工具”>“选项”>“项目和解决方案”>“生成并运行”来调高 Visual Studio 中 MSBuild 的详细程度。将“MSBuild 项目构建日志文件详细程度”设置为“详细”或“诊断”,然后查看日志中是否有更有趣的内容。