Directive de compilation: NDEBUG _DEBUG - C++ - Programmation
Marsh Posté le 28-11-2005 à 09:52:40
_DEBUG indique que tu travailles sur la version de debuggage de ton programme. Cela active certains outils de debuggage (macros TRACE, etc).
NDEBUG indique que tu travailles sur la version d'exploitation (autrement dit la version que tu devrais déployer en clientèle) d'où la désactivation du code de debuggage.
Reste que "configuration Debug" et "configuration Release" utilisée dans le jargon Visual ne veut plus rien dire si tu modifies les options de compilation.
Pour moi : ça sent la variable non initialisée ou un bug dans le code afférant à la version RELEASE. Regarde ton code placé entre #ifndef _DEBUG ... #endif ou #ifdef NDEBUG (déconseillé mais bon) ... #endif
Marsh Posté le 28-11-2005 à 19:42:05
Merci pour l'info mais tout ca je le savais.
comme tu peux le voir je n'ai rien mis dans les blocs de précompile... ce qu'il y a est le code généré de manière auto.
Du coup je suis un peu perdu dans tout ce mic mac, car dans le code il n'y a absolument pas de directive de précompilation (je le sais c'est moi qui l'ai fait).
De plus le code original été pour une version de visual studio .NET 2002 importé et converti sous visual studio .NET 2003
Après correction des incompatibilité de code entre les 2 versions sous 2003 ca ne marche absolument pas alors que sous 2002 ca marche impec!
Marsh Posté le 27-11-2005 à 12:02:19
Bonjour à tous,
J'ai un léger soucis de compilation sous VS2003. J'ai le code d'une appli à compiler. En mode debug ca marche très bien, alors que en release l'appli ne semble même pas démarrer. Après désactivation de tous les paramètres d'optimisations du mode release ca ne marchait toujours pas! Bref j'était bien dans le cac . Finallement pour revenir au mode debug il ne me restait plus qu'à modifier la variable de précompilation NDEBUG en _DEBUG et la ca marche!
Pour résumer:
en mode release si la variable NDEBUG est définit l'appli bug
si la variable _DEBUG est définit l'appli fonctionne très bien
D'où la question à quoi sert ces variables _DEBUG/NDEBUG?
Parce que je suis un peu pommer sur ce point!
la seule chose que j'ai pu trouver dans le code c'est:
Ce code est au debut de chaque fichier cpp.
Bref si vous avez des info?
Merci