首頁 > 後端開發 > C++ > 如何從 C 原始程式碼存取 CMake 變數?

如何從 C 原始程式碼存取 CMake 變數?

DDD
發布: 2024-10-29 18:16:15
原創
788 人瀏覽過

How to Access CMake Variables from Within C   Source Code?

在 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板