Heim  >  Artikel  >  Backend-Entwicklung  >  Wie greife ich in Ihrem C-Code auf CMake-Variablen zu?

Wie greife ich in Ihrem C-Code auf CMake-Variablen zu?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 08:42:30886Durchsuche

 How to Access CMake Variables in Your C   Code?

Zugriff auf CMake-Variablen in C-Code

Bei der Arbeit mit CMake kann es von Vorteil sein, häufig verwendete Werte als Variablen zu speichern. Der Zugriff auf diese Variablen innerhalb des C-Quellcodes kann jedoch eine Herausforderung sein.

Ein Ansatz zur Verwendung von CMake-Variablen in C ist die Verwendung der Funktion add_definitions. Diese Technik ermöglicht die Übergabe von Variablen als Präprozessordefinitionen:

<code class="cmake">add_definitions(-DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION})</code>

Anschließend kann im C-Code auf die Variable als Präprozessormakro zugegriffen werden:

<code class="c++">#if defined(VERSION_LIBINTERFACE)
    unsigned int libInterfaceVersion = VERSION_LIBINTERFACE;
#endif</code>

Alternativ können Sie sie nutzen Verwenden Sie den Befehl configure_file, um eine Header-Dateivorlage zu generieren, die die erforderlichen Variablenersetzungen enthält. Erstellen Sie beispielsweise eine Vorlagendatei mit dem Namen version_config.h.in:

<code class="c++">#ifndef VERSION_CONFIG_H
#define VERSION_CONFIG_H

#define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@

#endif</code>

Verwenden Sie in der Datei CMakeLists.txt die Anweisung configure_file:

<code class="cmake">configure_file(version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h)
include_directories(${CMAKE_BINARY_DIR}/generated/)</code>

Stellen Sie sicher, dass die generierte Header-Datei ist in den entsprechenden Quelldateien enthalten.

Das obige ist der detaillierte Inhalt vonWie greife ich in Ihrem C-Code auf CMake-Variablen zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn