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
在第一個啟用使用以 MSVC ABI 為目標的編譯器的語言的 project()
或 enable_language()
命令之前設定為 NEW
時才生效。