COMPILE_DEFINITIONS¶
用於編譯目錄來源程式的預處理器定義。
此屬性指定目前為止傳遞給 add_compile_definitions()
(或 add_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>
屬性可以設定為指定每個組態的定義。 應該優先使用產生器運算式,而不是設定替代屬性。