Maison > développement back-end > C++ > Comment définir efficacement les macros de préprocesseur dans CMake ?

Comment définir efficacement les macros de préprocesseur dans CMake ?

DDD
Libérer: 2024-11-30 07:01:15
original
887 Les gens l'ont consulté

How to Effectively Define Preprocessor Macros in CMake?

Définition de macros de préprocesseur avec CMake

La définition de variables de préprocesseur avec CMake a évolué au fil du temps. Explorons comment le faire efficacement.

add_definitions

Auparavant, CMake s'appuyait principalement sur la commande add_definitions à cette fin. Le code C équivalent serait #define foo.

add_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)
Copier après la connexion

add_compile_definitions

Cependant, à partir de CMake version 3.12, la commande add_compile_definitions propose une approche plus raffinée. Il cible spécifiquement les définitions de compilation, en les séparant des répertoires d'inclusion et des options du compilateur.

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})
add_compile_definitions(WITH_OPENCV2)
Copier après la connexion

Avantages de add_compile_definitions

Cette nouvelle approche élimine le besoin d'astuces souvent utilisées avec add_definitions. Il fournit une manière plus structurée et plus sujette aux erreurs de gérer les définitions de compilation.

Définitions spécifiques à la cible

Comme Jim Hunziker l'a mentionné, vous pouvez également définir des macros de préprocesseur sur un base par cible. Reportez-vous à sa réponse pour plus de détails.

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