cmake中配置类型和构建类型之间的区别是什么



CMAKE_CONFIGURATION_TYPESCMAKE_BUILD_TYPE之间有什么区别?

该文件声称它们被multi-configsingle-config所区分,这是什么意思?

CMake是构建系统的生成器(是的,它自己不构建任何东西(。

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

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

因此,通常情况下,单个配置生成器(并非所有(会检查CMAKE_BUILD_TYPE变量中所需的配置类型。而多配置生成器在CMAKE_CONFIGURATION_TYPES中查找所需配置的列表。

除了这(两个(变量之外,生成器可以检查一些其他变量;调谐";smth。有关详细信息,最好阅读特定生成器的文档。

最新更新