MSVC_DEBUG_INFORMATION_FORMAT¶
於 3.25 版本新增。
選擇以 MSVC ABI 為目標時的除錯資訊格式。
允許的值為
Embedded
使用
-Z7
或等效的旗標編譯,以產生具有完整符號除錯資訊的物件檔。ProgramDatabase
使用
-Zi
或等效的旗標編譯,以產生包含所有符號除錯資訊的程式資料庫。EditAndContinue
使用
-ZI
或等效的旗標編譯,以產生支援「編輯後繼續」功能的程式資料庫。
此值在非以 MSVC ABI 為目標的編譯器上會被忽略,但當使用以 MSVC ABI 為目標的編譯器時,不支援的值將被拒絕並視為錯誤。
此值也可以是空字串 (""
),在這種情況下,CMake 不會明確地加入任何除錯資訊格式旗標。
使用 產生器 表達式
來支援依組態設定。例如,以下程式碼
add_executable(foo foo.c)
set_property(TARGET foo PROPERTY
MSVC_DEBUG_INFORMATION_FORMAT "$<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>")
為目標 foo
選擇 Debug 組態的程式資料庫除錯資訊格式。
如果已設定,則此屬性會從 CMAKE_MSVC_DEBUG_INFORMATION_FORMAT
變數的值初始化。如果未設定此屬性,CMake 將使用預設值 $<$<CONFIG:Debug,RelWithDebInfo>:ProgramDatabase>
選擇除錯資訊格式(如果編譯器支援),否則使用 $<$<CONFIG:Debug,RelWithDebInfo>:Embedded>
。
注意
此屬性僅在策略 CMP0141
在第一個啟用使用 MSVC ABI 編譯器的語言的 project()
或 enable_language()
命令之前設定為 NEW
時才有效。