Automatique #définit en fonction de Debug/Release config dans Visual Studio
J'ai la sortie de débogage dans mon programme comme ceci:
#define DEBUG
...
#ifdef DEBUG
std::cout << "[RE_words] " << m_re << std::endl;
#endif
et DEBUG
est définie dans mon programme manuellement. J'ai toujours en commentaire la ligne quand je fais une version. Dans Visual Studio, il y a aussi des Configurations pour Debug vs Libération versions de la poignée de la ligne de commande, etc. utilisé pour la compilation. Puis-je également utiliser la Configuration "Debug" pour définir automatiquement DEBUG
pour le compilateur? Comment?
Vous devez vous connecter pour publier un commentaire.
Visual Studio définit automatiquement _DEBUG symbole pour les versions de Débogage (et NDEBUG pour les non-debug).
Une autre façon de le faire est d'aller dans les paramètres du projet -> propriétés de configuration -> C/C++ -> préprocesseur, et de modifier les définitions de préprocesseur manuellement.
Voir aussi:
Cette réponse explique les différences entre les _DEBUG et NDEBUG plus en détail.
Cette réponse explique le but de la NDEBUG symbole et si oui ou non il est défini par la norme.
Utilisation
_DEBUG
. Visual C++ définit ce pour une configuration de Débogage. Découvrez les directives de préprocesseur pour la Configuration de Débogage dans votre dialogue propriétés du projet.Moi aussi, je pensais que j'avais juste à regarder le préprocesseur de la propriété et de supprimer _DEBUG. Visual Studio tente de l'aider en paramètre _DEBUG si vous sélectionnez l'une de débogage de la bibliothèque run-time options.
Sur la page de propriétés du projet Propriétés de Configuration\C/C++\Génération de Code l'option sélectionnée pour de la Bibliothèque d'Exécution affecte plusieurs définit. Lors de la sélection d'une version de débogage de la bibliothèque (/MTd ou /MDd) le _DEBUG définir est ensemble.
Voir MSDN /MD /MT ...
pour plus d'informations sur les commutateurs. Il y a plusieurs #définit qui sont fixés sur la base de ces options. Ils sont assez invisible lorsque vous essayez de trouver qui définit un #define avant même de comprendre toute fichiers d'en-tête!!
Oui, vous devez vérifier les options de projet page, Compiler->Avancé des options de compilation.
Cependant, VS par défaut définit automatiquement DEBUG directive pour le mode Debug.
_DEBUG
directive. Notez le trait de soulignement.