Maison > développement back-end > C++ > le corps du texte

Comment accéder aux variables CMake dans le code source C ?

Linda Hamilton
Libérer: 2024-11-02 16:23:02
original
1036 Les gens l'ont consulté

How to Access CMake Variables in C   Source Code?

Accès aux variables CMake dans le code source C

Problème :
Comment une variable CMake, telle que LIBINTERFACE_VERSION, être accessible et utilisé dans le code source C ?

Réponse :

Option 1 : Utiliser add_definitions

  • Passez la variable CMake comme définition à l'aide de add_definitions().
  • Exemple :

    <code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>
    Copier après la connexion
  • Cela permet à la variable CMake d'être définie dans le code C comme une macro (#define).

Option 2 : Utiliser configure_file avec le modèle de fichier d'en-tête

  • Créer un modèle de fichier d'en-tête contenant la variable CMake références.
  • Exemple :

    <code class="cmake">// version_config.h.in
    #ifndef VERSION_CONFIG_H
    #define VERSION_CONFIG_H
    
    // define your version_libinterface
    #define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@
    
    // alternatively you could add your global method getLibInterfaceVersion here
    unsigned int getLibInterfaceVersion()
    {
      return @LIBINTERFACE_VERSION@;
    }
    
    #endif // VERSION_CONFIG_H</code>
    Copier après la connexion
  • Utilisez configure_file() pour générer le fichier d'en-tête en remplaçant les variables CMake par leurs valeurs.
  • Exemple :

    <code class="cmake">configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h )
    include_directories( ${CMAKE_BINARY_DIR}/generated/ ) # Make sure it can be included...</code>
    Copier après la connexion
  • Inclure le fichier d'en-tête généré dans le code source C.

Exemple d'utilisation :

<code class="cpp">// Assuming version_config.h is included
std::string version = VERSION_LIBINTERFACE;</code>
Copier après la connexion

Remarque :
La méthode configure_file() est plus extensible car elle permet d'ajouter des variables ou des définitions supplémentaires au fichier d'en-tête généré.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal