39 votes

Qt offre-t-il une définition de débogage (garantie) ?

Quelqu'un connaît-il un moyen officiellement supporté d'inclure du code debug-build only dans Qt ? Par exemple :

#ifdef QT_DEBUG
// do something
#endif

Comme Q_ASSERT, mais pour des tests plus complexes.

Je n'arrive pas à trouver de documentation indiquant que le framework Qt garantit la définition d'une macro de débogage. Si ce n'est pas le cas, quel serait le moyen le plus raisonnable de définir une macro de débogage ? non officiel Comment mettre en œuvre cette fonctionnalité à l'échelle du projet ?

54voto

laalto Points 50581

Qt définit QT_NO_DEBUG pour les versions de développement. Dans le cas contraire QT_DEBUG est définie.

Bien entendu, vous êtes libre de spécifier n'importe quel DEFINES dans vos fichiers .pro et de les étendre à l'un ou l'autre des éléments suivants debug o release .

20voto

eSKon Points 299

Une alternative est d'écrire dans votre fichier de projet quelque chose comme :

debug {
  DEFINES += MYPREFIX_DEBUG
}
release {
  DEFINES += MYPREFIX_RELEASE
}

Vous ne dépendrez donc pas de la définition interne de Qt.

8voto

S.M.Mousavi Points 704

Pour vérifier le mode de débogage :

#ifdef QT_DEBUG
    //Some codes
#endif

Pour le mode de déclenchement de la vérification :

#ifndef QT_DEBUG    //<== Please note... if not defined
    //Some codes
#endif

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X