Maison > développement back-end > C++ > Comment accéder aux variables CMake à partir du code source C ?

Comment accéder aux variables CMake à partir du code source C ?

DDD
Libérer: 2024-10-29 18:16:15
original
909 Les gens l'ont consulté

How to Access CMake Variables from Within C   Source Code?

Accès aux variables CMake dans le code source C

Lorsque vous travaillez avec CMake, il est souvent souhaitable de stocker les informations à l'échelle du projet dans des variables centralisées. Cela permet une gestion et une accessibilité faciles. Cependant, accéder à ces variables directement dans le code source C peut être difficile.

Déclaration de variable CMake

Dans le scénario fourni, la variable CMake LIBINTERFACE_VERSION est définie pour stocker la bibliothèque. numéro de version :

<code class="cmake">SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")</code>
Copier après la connexion

Accès à la variable en C

Pour accéder à LIBINTERFACE_VERSION en C, vous pouvez utiliser l'une des deux méthodes suivantes :

1. add_definitions

La fonction add_definitions() vous permet de transmettre des variables CMake en tant que définitions au compilateur :

<code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>
Copier après la connexion

Dans votre code C, vous pouvez ensuite accéder à la variable comme :

<code class="cpp">#include <version_config.h>
unsigned int version = VERSION_LIBINTERFACE;</code>
Copier après la connexion

2. configure_file

Vous pouvez également utiliser configure_file() pour créer un modèle de fichier d'en-tête (par exemple, version_config.h.in) où les variables CMake sont remplacées :

<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>
Copier après la connexion

Dans votre C code, vous pouvez ensuite inclure le fichier d'en-tête généré :

<code class="cpp">#include "version_config.h"
unsigned int version = VERSION_LIBINTERFACE;</code>
Copier après la connexion

Cette approche offre une flexibilité supplémentaire pour incorporer plusieurs définitions ou variables dans votre fichier d'en-tête.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal