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