限制Windows上Ninja使用的内核

问题描述

我正在尝试限制Ninja(1.10.0)使用的内核数量。在使用CMake(3.11和3.18)时,我一直在使用推荐的参数

 '-DCMAKE_JOB_POOLS:STRING=compile=4;link=3'

来自

但是,这似乎没有任何作用,并且系统仍然使用编译器(TASKING C编译器-cctc)的所有可用内核,并启动和运行了4个以上的进程。

  1. Ninja文件中是否存在一些应创建的设置来限制编译器线程?
  2. 要在Windows上使其正常工作,是否需要做一些特殊的事情(例如格式化)?

解决方法

如果以构建工具模式运行CMake来构建已经生成的项目二进制树,则可以向本机构建工具(在本例中为Ninja)添加其他参数,例如

cmake --build builddir --target all --config Release -- -j4

有关CMake构建工具模式,请参见documentation;有关受支持的忍者命令行选项,请参见ninja --help