我的 externalFiles 目录中有 100 个 .h 文件。我的源代码中大约有 10 个 .cpp 文件包含这些 .h 文件。
因此,我#include externalFiles/.*h从 .cpp 文件中删除了所有指令,并将它们写入通过 Cmake 包含的 pch.h 标头中target_precompile_headers(${PROJECT_NAME} PRIVATE pch.h)。
我通过 Cmake 使用预编译头检查了构建时间,而不是简单地将 pch.h 包含在我的 .cpp 文件中。我使用以下方法记录了构建时间:
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CMAKE_COMMAND} -E time")和
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK "${CMAKE_COMMAND} -E time")
使用预编译头构建时间
[1/2] 构建 CXX 对象 CMakeFiles/AlgoCoding.dir/main.cpp.obj
经过时间:11 秒。(时间),11.413 秒。(钟)
[2/2] 链接 CXX 可执行文件 AlgoCoding.exe
经过时间:54 秒。(时间),53.459 秒。(钟)
构建时间仅包括标头
[1/2] 构建 CXX 对象 CMakeFiles/AlgoCoding.dir/main.cpp.obj
经过时间:14秒。(时间),13.35 秒。(钟)
[2/2] 链接 CXX 可执行文件 …