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