cmake中的配置类型和构建类型有什么区别

Xud*_*ong 4 cmake

CMAKE_CONFIGURATION_TYPES和 和有什么区别CMAKE_BUILD_TYPE

该文件声称他们通过multi-config或 来区分single-config,这是什么意思?

zau*_*ufi 6

CMake 是构建系统的生成器(是的,它本身不构建任何东西)。

一些生成器是单一配置的(例如,Unix MakefilesNinja)。这意味着您指定一个构建类型(通过-DCMAKE_BUILD_TYPE=XXX)并且将从生成的构建目录中cmake --build .仅构建该类型(例如Debug, ,...)。Release

其他的是多配置生成器(例如,Visual Studio NN YYYYNinja Multi-Config)——即,您提供一组配置(通过-DCMAKE_CONFIGURATION_TYPES=Debug;Release),生成的构建系统可以构建列表中的任何(或全部)单个构建目录(通过cmake --build . --config <name>)。

因此,一般来说,单配置生成器(并非全部)会检查CMAKE_BUILD_TYPE变量以获得所需的配置类型。而多配置生成器会在CMAKE_CONFIGURATION_TYPES.

除了这(两个)变量之外,生成器还可以检查一些其他变量以便“调整”。最好阅读特定生成器的文档以了解详细信息。