CMAKE_MSVC_DEBUG_INFORMATION_FORMAT

在 3.25 版本加入.

选择针对 MSVC ABI 的 MSVC 调试信息格式。此变量用于在创建所有目标时初始化所有目标的 MSVC_DEBUG_INFORMATION_FORMAT 属性。它还通过调用 try_compile() 命令传播到测试项目中。

允许的值为:

嵌入式

使用“-Z7”或等效标志编译以生成具有完整符号调试信息的目标文件。

程序数据库

使用“-Zi”或等效标志编译以生成包含所有符号调试信息的程序数据库。

编辑并继续

使用“-ZI”或等效标志进行编译以生成支持“编辑并继续”功能的程序数据库。

在不以 MSVC ABI 为目标的编译器上会忽略该值,但在使用以 MSVC ABI 为目标的编译器时,不受支持的值将作为错误被拒绝。

该值也可以是空字符串 (""),在这种情况下,CMake 将不会显式添加调试信息格式标志。

使用 generator expressions 来支持每个配置规范。例如,代码:

set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>")

为所有以下目标选择调试配置的程序数据库调试信息格式。

如果未设置此变量,将不会自动设置 MSVC_DEBUG_INFORMATION_FORMAT 目标属性。如果未设置该属性,CMake 将使用默认值 $<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase> 选择调试信息格式(如果编译器支持),否则使用 $<$<CONFIG:Debug,RelWithDebInfo>:Embedded>

备注

只有在第一个使用针对 MSVC ABI 的编译器启用语言的 project 或 enable_language 命令之前将策略 CMP0141 设置为 NEW 时,此变量才有效.