Heim > Artikel > Backend-Entwicklung > Wie greife ich auf CMake-Variablen im C-Quellcode zu und verwende sie?
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")
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} )
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
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 )
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>
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!