Heim > Backend-Entwicklung > C++ > Wie greife ich aus dem C-Quellcode auf CMake-Variablen zu?

Wie greife ich aus dem C-Quellcode auf CMake-Variablen zu?

DDD
Freigeben: 2024-10-29 18:16:15
Original
775 Leute haben es durchsucht

How to Access CMake Variables from Within C   Source Code?

Zugriff auf CMake-Variablen im C-Quellcode

Bei der Arbeit mit CMake ist es oft wünschenswert, projektweite Informationen in zentralisierten Variablen zu speichern. Dies ermöglicht eine einfache Verwaltung und Zugänglichkeit. Der Zugriff auf diese Variablen direkt im C-Quellcode kann jedoch eine Herausforderung sein.

CMake-Variablendeklaration

Im bereitgestellten Szenario ist die CMake-Variable LIBINTERFACE_VERSION zum Speichern der Bibliotheken definiert Versionsnummer:

<code class="cmake">SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")</code>
Nach dem Login kopieren

Zugriff auf die Variable in C

Um auf LIBINTERFACE_VERSION in C zuzugreifen, können Sie eine von zwei Methoden verwenden:

1. add_definitions

Mit der Funktion add_definitions() können Sie CMake-Variablen als Definitionen an den Compiler übergeben:

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

In Ihrem C-Code können Sie dann auf die Variable zugreifen als:

<code class="cpp">#include <version_config.h>
unsigned int version = VERSION_LIBINTERFACE;</code>
Nach dem Login kopieren

2. configure_file

Sie können configure_file() auch verwenden, um eine Header-Dateivorlage (z. B. version_config.h.in) zu erstellen, in der CMake-Variablen ersetzt werden:

<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>
Nach dem Login kopieren

Innerhalb Ihres C Code können Sie dann die generierte Header-Datei einschließen:

<code class="cpp">#include "version_config.h"
unsigned int version = VERSION_LIBINTERFACE;</code>
Nach dem Login kopieren

Dieser Ansatz bietet zusätzliche Flexibilität für die Einbindung mehrerer Definitionen oder Variablen in Ihre Header-Datei.

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage