Mon code est plein d'appels à assert(condition)
. Dans la version de débogage, j'utilise g++ -g
qui déclenche mes assertions. De manière inattendue, les mêmes assertions sont également déclenchées dans ma version de sortie, celle compilée sans -g
option.
Comment puis-je désactiver complètement mes assertions au moment de la compilation ? Dois-je définir explicitement NDEBUG
dans toutes les constructions que je produis, qu'elles soient de type debug, release ou autre ?
1 votes
Un peu hors sujet : si vous voulez des informations de débogage,
-g
est équivalent à-g2
.-g3
pourrait être un meilleur choix, car il rend disponible l'information la plus symbolique. Par exemple, à-g3
les #defines symboliques seront disponibles. J'ai vu certaines chaînes d'outils s'étouffer sur les-g3
cependant. En outre, de nombreuses bibliothèques externes dépendent également de-DDEBUG
pour les constructions de type "débogage" (Posix n'atteste que de la présence de-DNDEBUG
pour les versions "release").