CMake 的 --target 参数发生了什么?

use*_*ser 5 cmake

使用 CMake 版本 3.19.2,我可以使用--target参数来构建特定目标,而不是all. 例如--target tests构建测试。但是,使用 CMake 3.22.1 我收到如下错误:

CMake Error: Unknown argument --target
CMake Error: Run 'cmake --help' for all supported options.
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到CMake的手册: https: //cmake.org/cmake/help/latest/manual/cmake.1.html
(有一个版本选择的下拉列表)

它描述了这个--target论点,而且看起来和之前的没有什么不同。尽管如此,从 3.19.2 切换到 3.22.1 后,它不允许我使用--target.

@编辑感谢您的反馈,这是我使用的:

cmake -G Ninja -DCROSS_COMPILER_PREFIX=<some_prefix> -Dsomeothervariables=1 --target tests $directory_with_cmake_project
Run Code Online (Sandbox Code Playgroud)

它适用于 3.19.2,但使用 cmake 3.22.1 执行相同的操作会导致错误。-G Ninja我希望提供、变量、目标目录和重要的顺序--target,但我还没有设法让它以我能想到的任何顺序工作。

Kam*_*Cuk 5

CMake 由多个阶段组成 - 首先配置项目,然后构建它:

--target参数 if 对于构建阶段,并且对于配置阶段无效,因此您的错误。