如何使用 CMake 计算 C 项目的构建时间

elg*_*ero 4 c cmake build-time

我正在一个 C 项目中工作,为了构建我正在使用 CMake 的软件。不幸的是,软件的构建需要大量时间。为了分析构建时间,我想:

  • 打印每个 c 文件的翻译时间
  • 打印整个构建的时间

到一个文本文件中。

我该如何使用 CMake 来做到这一点?

Rei*_*ica 5

我正在一个 C 项目中工作,为了构建我正在使用 CMake 的软件。

并不真地; CMake 不构建任何东西,它不是构建工具。CMake 用于生成构建系统(例如 makefile 或 Visual Studio 解决方案),然后使用普通构建工具进行构建。即使调用也cmake --build只是一个启动适当构建工具的包装器。

这意味着构建时间不受 CMake 控制。您必须检查构建工具链(gcc、cl 等)的计时功能。如果这些需要编译器等的命令行选项,您当然可以使用正常的 CMake 机制(target_compile_options()等)在 CMakeLists 中设置它们。

至于整个构建的计时,您可以使用 CMake 的内置计时功能cmake -E time command args...,但这又不是特定于构建的;它只是一种对任意命令的运行进行计时的跨平台方式。