【问题标题】:How to build a CMake project in parallel on all available cores?如何在所有可用内核上并行构建 CMake 项目?
【发布时间】:2021-12-31 11:21:41
【问题描述】:

related question 展示了如何使用指定数量的内核构建 CMake 项目。例如,如果我想使用 10 个内核,我可以像这样调用 CMake:

cmake --build . -j 10

我的问题是:如何使用 all 我的可用内核进行构建。我实际上希望 CMake 自动检测我的核心数量并使用它们。

【问题讨论】:

  • 你可以使用 Ninja 生成器,它会利用你所有的内核。

标签: optimization cmake build concurrency


【解决方案1】:

As of CMake 3.22,没有标准的方法可以做到这一点。但是,有一些实用的方法。

  1. 如果您在任何平台上使用NinjaNinja Multi-Config 生成器,只需使用cmake --build /path/to/build-dir 运行构建将使用所有内核。
  2. 如果您在类似 UNIX 的命令行上,您可以运行 cmake --build . -j $(nproc)
  3. 如果你在 Windows/cmd 上,你可以运行cmake --build . -j %NUMBER_OF_PROCESSORS%

【讨论】:

  • 谢谢!我不知道使用 Ninja 生成器会自动处理这个问题。我将改用它,因为在我看来,这似乎是三者中最简单、最不容易出错且最面向未来的解决方案。
  • 真的很值得。现在完全重建我的项目项目只需要几秒钟,而不是几分钟。链接几乎是瞬间完成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 1970-01-01
  • 2012-04-30
  • 2020-05-02
  • 2017-09-07
  • 2013-02-16
  • 2012-09-17
相关资源
最近更新 更多