首頁 >後端開發 >C++ >如何在 CMake 中有效定義預處理器巨集?

如何在 CMake 中有效定義預處理器巨集?

DDD
DDD原創
2024-11-30 07:01:15794瀏覽

How to Effectively Define Preprocessor Macros in CMake?

使用 CMake 定義預處理器巨集

使用 CMake 定義預處理器變數隨著時間的推移而不斷發展。讓我們探討一下如何有效地做到這一點。

add_definitions

以前,CMake 主要依靠 add_definitions 命令來實現此目的。等效的 C 代碼為 #define foo。

add_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)

add_compile_definitions

但是,從 CMake 版本 3.12 開始,add_compile_definitions 指令提供了更精細的方法。它專門針對編譯定義,將它們與包含目錄和編譯器選項分開。

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})
add_compile_definitions(WITH_OPENCV2)

add_compile_definitions 的好處

這種較新的方法消除了經常使用的技巧的需要添加定義。它提供了一種更結構化且更容易出錯的方式來管理編譯定義。

特定於目標的定義

正如 Jim Hunziker 所提到的,您還可以在每個目標的基礎。更多詳情請參閱他的回答。

以上是如何在 CMake 中有效定義預處理器巨集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn