Heim > Backend-Entwicklung > C++ > Hauptteil

Wie greife ich auf CMake-Variablen im C-Quellcode zu und verwende sie?

DDD
Freigeben: 2024-10-30 05:14:02
Original
946 Leute haben es durchsucht

How to Access and Use CMake Variables in C   Source Code?

CMake-Variablen im C-Quellcode lesen

Viele Entwickler ziehen es aus Gründen der Einfachheit vor, Konfigurationsinformationen, wie z. B. Versionsnummern, an einem zentralen Ort zu speichern des Managements. CMake bietet einen praktischen Mechanismus zum Definieren solcher Variablen in seinen Konfigurationsdateien. In diesem Artikel wird erläutert, wie Sie während der Kompilierung auf diese Variablen im C-Quellcode zugreifen und diese verwenden.

CMake-Variablen definieren

Um eine CMake-Variable zu definieren, verwenden Sie den SET-Befehl. Hier ist ein Beispiel, das eine Variable namens LIBINTERFACE_VERSION mit dem Wert 1 definiert:

SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")
Nach dem Login kopieren

Variablen an C-Code übergeben

Sobald eine CMake-Variable definiert ist, können Sie dies tun Machen Sie es mit den Befehlen add_definitions oder configure_file für C-Code verfügbar.

Verwenden von add_definitions

Der Befehl add_definitions ist eine einfache und unkomplizierte Möglichkeit, eine CMake-Variable an C-Code zu übergeben . Es erstellt eine Präprozessordefinition, die im Quellcode verwendet werden kann.

add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )
Nach dem Login kopieren

Dadurch wird die Präprozessordefinition VERSION_LIBINTERFACE mit dem Wert von LIBINTERFACE_VERSION erstellt, die dann im C-Code verwendet werden kann.

Configure_file verwenden

configure_file ist ein vielseitigerer Ansatz, der es Ihnen ermöglicht, eine Header-Dateivorlage zu erstellen und CMake zum Ersetzen von Variablen darin zu verwenden. Diese Methode bietet mehr Flexibilität und kann zum Generieren mehrerer Header-Dateien mit unterschiedlichen Konfigurationen verwendet werden.

Erstellen einer Vorlagen-Header-Datei

Erstellen Sie zunächst eine Vorlagen-Header-Datei, z als version_config.h.in, mit folgendem Inhalt:

#ifndef VERSION_CONFIG_H
#define VERSION_CONFIG_H

// define your version_libinterface
#define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@

#endif // VERSION_CONFIG_H
Nach dem Login kopieren

Diese Vorlage definiert ein VERSION_LIBINTERFACE-Präprozessormakro mit dem Wert von LIBINTERFACE_VERSION.

Verwenden von configure_file

Verwenden Sie in Ihrer CMakeLists.txt-Datei configure_file, um die Header-Datei version_config.h zu generieren:

configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h )
Nach dem Login kopieren

Dieser Befehl ersetzt den Platzhalter @LIBINTERFACE_VERSION@ durch den tatsächlichen Wert der Variablen und generiert die Header-Datei.

Einschließen der generierten Header-Datei

Stellen Sie abschließend sicher, dass Sie die generierte Header-Datei version_config.h in Ihren C-Quellcode einschließen:

#include <generated/version_config.h>
Nach dem Login kopieren

Mit jeder dieser Methoden können Sie auf CMake-Variablen in Ihrem C-Quellcode zugreifen und diese verwenden. Sowohl add_definitions als auch configure_file bieten je nach Ihren spezifischen Anforderungen und Projektstruktur unterschiedliche Vorteile.

Das obige ist der detaillierte Inhalt vonWie greife ich auf CMake-Variablen im C-Quellcode zu und verwende sie?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!