Maison > développement back-end > C++ > Comment accéder aux variables CMake dans le code source C ?

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

Linda Hamilton
Libérer: 2024-11-02 16:23:02
original
1095 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!

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