CMAKE_MSVC_DEBUG_INFORMATION_FORMAT¶
在版本 3.25 中添加。
选择以 MSVC ABI 为目标的 MSVC 调试信息格式。此变量用于初始化 MSVC_DEBUG_INFORMATION_FORMAT
属性,因为当创建它们时,该属性在所有目标中都被初始化。它还通过对 try_compile()
命令的调用传播到测试项目中。
允许的值为
嵌入式
使用
-Z7
或等效标志编译以生成包含完整符号调试信息的 object 文件。程序数据库
使用
-Zi
或等效标志编译以生成包含所有符号调试信息的程序数据库。编辑和继续
使用
-ZI
或等效标志编译以生成支持“编辑和继续”功能的程序数据库。
在未以 MSVC ABI 为目标的编译器中,该值被忽略,但当使用以 MSVC ABI 为目标的编译器时,不支持的值将被拒绝并显示为错误。
该值也可以是空字符串 (""
),在这种情况下,CMake 不会显式添加任何调试信息格式标志。
使用 生成器 表达式
来支持按配置指定。例如,代码
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>")
为随后的所有目标选择 Debug 配置的程序数据库调试信息格式。
如果没有设置此变量,则不会自动设置 MSVC_DEBUG_INFORMATION_FORMAT
目标属性。如果没有设置该属性,则 CMake 会选择使用默认值 $<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>
的调试信息格式(如果编译器支持),否则为 $<$<CONFIG:Debug,RelWithDebInfo>:Embedded>
。
注意
只有在策略 CMP0141
在第一个启用使用以 MSVC ABI 为目标的编译器的语言的 project()
或 enable_language()
命令之前被设置为 NEW
时,此变量才生效。