COMPILE_DEFINITIONS¶
用於編譯目標原始碼的預處理器定義。
COMPILE_DEFINITIONS
屬性可以設置為以分號分隔的預處理器定義列表,使用語法 VAR
或 VAR=value
。不支援函式風格的定義。CMake 將自動為原生建置系統正確地逸出值(請注意,CMake 語言語法可能需要逸出來指定某些值)。
CMake 將自動捨棄原生建置工具不支援的某些定義。
在版本 3.26 中新增: 任何項目前面的 -D
都將被移除。
免責聲明:大多數原生建置工具對逸出某些值的支援不佳。CMake 對於許多情況都有解決方案,但有些值可能就是無法正確傳遞。如果值似乎沒有正確逸出,請勿嘗試透過在值中加入逸出序列來解決問題。您的解決方案可能會在未來改進逸出支援的 CMake 版本中失效。請考慮在(已配置的)標頭檔中定義巨集,然後回報此限制。已知的限制包括
# - broken almost everywhere
; - broken in VS IDE 7.0 and Borland Makefiles
, - broken in VS IDE
% - broken in some cases in NMake
& | - broken in some cases on MinGW
^ < > \" - broken in most Make tools on Windows
CMake 不會完全拒絕這些值,因為它們在某些情況下確實有效。請謹慎使用。
COMPILE_DEFINITIONS
的內容可以使用語法 $<...>
的「產生器運算式」。有關可用運算式,請參閱 cmake-generator-expressions(7)
文件。有關定義建置系統屬性的詳細資訊,請參閱 cmake-buildsystem(7)
文件。
可以設定對應的 COMPILE_DEFINITIONS_<CONFIG>
屬性來指定每個組態的定義。應該優先使用產生器運算式,而不是設定替代屬性。