Passer des paramètres au préprocesseur

Problème

Vous voulez passer des paramètres au préprocesseur afin que la compilation s’effectue en fonction de ces paramètres utilisés dans le code.

Solution

Utilisez l’option -D du compilateur et considérez l’option ainsi passée comme une macro.

Discussion

Lorsque le préprocesseur rencontre l’option -D, par exemple -DDEBUG, la macro DEBUG est définie dans le code et nous pouvons l’exploiter ainsi :


#ifdef DEBUG 
printf ("Mode DEBUG activé\n"); 
#endif
 

Cela permet par exemple d’avoir une compilation en fonction du système d’exploitation :


#ifdef OS_LINUX 
print ("Système : Linux\n"); 
#endif
 

Avec uname -s vous pouvez obtenir le nom du système d’exploitation, et si c’est GNU/Linux, compiler avec -DOS_LINUX.

Vous pouvez même spécifier un contenu, avec par exemple -DPREFIX=\"/usr\" qui affecte à la macro PREFIX une chaîne de caractères. Il faut faire attention aux guillemets qui sont nécessaires ici. Vous pouvez ensuite exploiter cela ainsi :


#ifdef PREFIX 
printf ("Le préfixe est %s\n", PREFIX); 
#endif
 

Voir aussi le manuel de gcc : http://gcc.gnu.org/onlinedocs/ et plus particulièrement le chapitre Options Controlling the Preprocessor.

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Obtenir des binaires optimisés
Suivant
Introduction