ホームページ > バックエンド開発 > C++ > C ソース コード内から CMake 変数にアクセスするにはどうすればよいですか?

C ソース コード内から CMake 変数にアクセスするにはどうすればよいですか?

DDD
リリース: 2024-10-29 18:16:15
オリジナル
776 人が閲覧しました

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 での変数へのアクセス

C で LIBINTERFACE_VERSION にアクセスするには、次の 2 つの方法のいずれかを使用できます:

1. add_settings

add_settings() 関数を使用すると、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() を使用して、CMake 変数が置き換えられるヘッダー ファイル テンプレート (version_config.h.in など) を作成することもできます。

<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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート