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
801 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!

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