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 不會明確地加入任何偵錯資訊格式旗標。
使用 產生器 表達式
來支援每個組態的規格。例如,以下程式碼
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
在第一個 project()
或 enable_language()
命令(使用以 MSVC ABI 為目標的編譯器啟用語言)之前設定為 NEW
時才有效。