在 C 原始程式碼中存取 CMake 變數
使用 CMake 時,通常需要將專案範圍的資訊儲存在集中變數中。這樣可以輕鬆管理和存取。然而,直接在 C 原始程式碼中存取這些變數可能具有挑戰性。
CMake 變數宣告
在提供的場景中,定義CMake 變數LIBINTERFACE_VERSION 來儲存庫的版本號碼:
<code class="cmake">SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")</code>要存取C 中的LIBINTERFACE_VERSION,您可以使用以下兩種方法之一:
1。 add_definitions
add_definitions() 函數允許您將CMake 變數作為定義傳遞給編譯器:<code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>在您的C 程式碼中,您可以透過以下方式存取該變數:
<code class="cpp">#include <version_config.h> unsigned int version = VERSION_LIBINTERFACE;</code>
2。 configure_file
您也可以使用configure_file() 建立頭檔範本(例如,version_config.h.in),其中取代CMake 變數:<code class="cmake"># version_config.h.in #ifndef VERSION_CONFIG_H #define VERSION_CONFIG_H // Define version_libinterface #define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@ #endif // VERSION_CONFIG_H configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h ) include_directories( ${CMAKE_BINARY_DIR}/generated/ )</code>在您的C 中程式碼,然後您可以包含產生的頭檔:
<code class="cpp">#include "version_config.h" unsigned int version = VERSION_LIBINTERFACE;</code>此方法為在頭檔中合併多個定義或變數提供了額外的彈性。
以上是如何從 C 原始程式碼存取 CMake 變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!