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
Exemple :
<code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>
Option 2 : Utiliser configure_file avec le modèle de fichier d'en-tête
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>
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>
Exemple d'utilisation :
<code class="cpp">// Assuming version_config.h is included std::string version = VERSION_LIBINTERFACE;</code>
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!