COMPILE_DEFINITIONS¶
用於編譯目錄來源程式碼的預處理器定義。
此屬性指定到目前為止給予 add_compile_definitions()
(或 add_definitions()
) 命令的選項清單。
可以將 COMPILE_DEFINITIONS
屬性設定為以分號分隔的預處理器定義清單,語法為 VAR
或 VAR=value
。 不支援函式樣式的定義。 CMake 將自動為原生建置系統正確地跳脫值 (請注意,CMake 語言語法可能需要跳脫字元才能指定某些值)。
此屬性將在每個目錄中,由其父目錄中的值初始化。
CMake 將自動捨棄原生建置工具不支援的某些定義。
在版本 3.26 中新增: 項目開頭的任何 -D
都將被移除。
免責聲明: 大多數原生建置工具對於跳脫某些值的支援不佳。 CMake 針對許多情況有變通方法,但某些值可能無法正確傳遞。 如果值似乎未正確跳脫,請勿嘗試透過將跳脫序列新增至值來解決問題。 您的變通方法可能會在未來已改進跳脫支援的 CMake 版本中失效。 請考慮在 (已配置的) 標頭檔中定義巨集。 然後回報限制。 已知的限制包括
#
幾乎在所有地方都損壞。
;
在 VS IDE 7.0 和 Borland Makefiles 中損壞。
,
在 VS IDE 中損壞。
%
在 NMake 的某些情況下損壞。
& |
在 MinGW 的某些情況下損壞。
^ < > \ "
在 Windows 上大多數 Make 工具中損壞。
CMake 不會直接拒絕這些值,因為它們在某些情況下確實有效。 請謹慎使用。
COMPILE_DEFINITIONS
的內容可以使用「產生器表達式」,語法為 $<...>
。 有關可用的表達式,請參閱 cmake-generator-expressions(7)
手冊。 有關定義建置系統屬性的更多資訊,請參閱 cmake-buildsystem(7)
手冊。
可以設定對應的 COMPILE_DEFINITIONS_<CONFIG>
屬性,以指定每個組態的定義。 產生器表達式應優先於設定替代屬性。