3

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

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

成一个文本文件。

我怎样才能使用 CMake 做到这一点?

4

1 回答 1

3

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

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

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

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

于 2019-09-13T08:48:40.227 回答