Heim Backend-Entwicklung C++ Wie greife ich auf CMake-Variablen im C-Quellcode zu und verwende sie?

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

Oct 30, 2024 am 05:14 AM

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert? Mar 03, 2025 pm 05:52 PM

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut GULC: C -Bibliothek von Grund auf neu gebaut Mar 03, 2025 pm 05:46 PM

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte Mar 03, 2025 pm 05:53 PM

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die? Mar 03, 2025 pm 05:53 PM

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Wo ist der Rückgabewert der C -Sprachfunktion im Speicher? Mar 03, 2025 pm 05:51 PM

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe eindeutiger Gebrauch und Phrasenfreigabe Mar 03, 2025 pm 05:51 PM

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient? Mar 12, 2025 pm 04:52 PM

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)? Mar 12, 2025 pm 04:50 PM

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?

See all articles