使用make命令编译度量



我使用CMake生成一些makefile,这些makefile将在Linux上使用g++编译多个目标。我想创建一些关于编译的指标,例如:

  • 构建每个目标所需的时间
  • g++警告和错误

到目前为止,我想到的唯一解决方案是重定向make的输出并解析整个文件,但这似乎真的很繁重。我不能使用g++标志-fdiagnostics-format=json功能,因为我不能升级到GCC-9。

有什么建议吗?非常感谢

就时间而言,可以考虑使用Ninja而不是Make。构建时生成一个名为${CMAKE_BINARY_DIR}/.ninja_log可以转换的文件格式兼容Chrome的about:tracing火焰图像格式。

这里有一个脚本:https://github.com/nico/ninjatracing

你可以将编译器设置为一个程序或shell脚本,用于包装g++功能,并添加一些(类似于某些缓存集成的工作方式):

# Makefile
CC := g++-with-metrics.sh
# g++-with-metric.sh
# 1. Start timer
# 2. Run command, save output (to variable or tmpfile)
# 3. Stop timer, log result
# 4. Parse output for warnings and errors, log result

最新更新