Il semble que vous souhaitez utiliser différents en-têtes en fonction de certains « profil de compilation ».
Au lieu de la solution -D
, je suggère plutôt d'utiliser la directive -I
pour spécifier les répertoires d'inclusion.
Étant donné que vous avez l'arborescence de fichier suivant:
/
debug/
header.h
release/
header.h
main.cpp
:
#include "header.h"
/* some instructions, not relevant here */
Et dans votre Makefile
(ou tout autre outil que vous utilisez), juste spécifier le approprié include utiliser , selon la raison que vous voulez:
g++ -I debug main.cpp // Debug mode
g++ -I release main.cpp // Release mode
Note de bas de page importante: Je ne sais pas si vous avez l'intention de l'utiliser comme déboguer/relâcher.Cependant, cela serait bizarre: l'interface (les fichiers .h
inclus) ne devrait pas changer entre release
et debug
. Si vous en avez besoin, la méthode habituelle consiste à activer/désactiver certaines parties du code en utilisant des définitions, principalement dans les fichiers .c
(et .cpp
).
+1 pour la note de bas de page importante! –