Maison >développement back-end >C++ >Comment définir des macros de préprocesseur dans CMake en utilisant l'approche recommandée ?

Comment définir des macros de préprocesseur dans CMake en utilisant l'approche recommandée ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 10:20:16891parcourir

How to Define Preprocessor Macros in CMake Using the Recommended Approach?

Définition des macros de préprocesseur dans CMake

Souvent, les développeurs exigent que les macros de préprocesseur soient définies pour leurs projets CMake. Traditionnellement, CMake fournissait la commande add_definitions à cet effet. Cependant, depuis la version 3.12 de CMake, une nouvelle approche a été introduite avec des commandes distinctes pour compiler les définitions, inclure les répertoires et les options du compilateur.

Utiliser la nouvelle approche

Pour définissez une macro de préprocesseur en utilisant la nouvelle syntaxe, utilisez la commande add_compile_definitions comme suit :

add_compile_definitions(MACRO_NAME=VALUE)

Pour exemple, pour définir la macro OPENCV_VERSION, vous écrirez :

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})

Vous pouvez également définir plusieurs macros en une seule commande :

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)

Avantages

Cette nouvelle approche offre plusieurs avantages par rapport aux add_definitions commande :

  • Il offre un meilleur contrôle sur les définitions qui sont appliquées aux différentes parties de votre projet.
  • Il évite la possibilité de définir des macros qui ne sont pas destinées à une cible particulière.
  • Il s'aligne sur les meilleures pratiques de développement CMake, comme indiqué dans la documentation CMake. (https://cmake.org/cmake/help/latest/command/add_definitions.html).

Remarque : Comme indiqué dans la documentation, il n'est pas recommandé de n'utilisez plus la commande add_definitions.

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:
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