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
776 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!

source:php.cn
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