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

Est-ce que quelqu'un connaît une façon officiellement supportée d'inclure du code de débogage uniquement dans Qt? Par exemple:

#ifdef QT_DEBUG
// do something
#endif

fondamentalement comme Q_ASSERT mais pour des tests plus complexes.

il semble que je ne trouve aucune documentation indiquant que le cadre Qt garantit la définition d'une macro de débogage. S'il n'y en a pas, qu'est-ce qui serait raisonnable?--6-->non officiel pour implémenter cette fonctionnalité du projet?

33
demandé sur Samuel Harmer 2012-01-10 14:14:46

3 réponses

QT définit QT_NO_DEBUG pour la release. Sinon,QT_DEBUG est défini.

bien sûr, vous êtes libre de spécifier un DEFINES dans votre .pro fichiers et la portée eux, soit debug ou release.

44
répondu laalto 2012-01-10 15:27:32

une alternative est d'écrire dans votre dossier de projet quelque chose comme:

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

alors vous ne dépendrez pas de la définition interne de Qt.

14
répondu eSKon 2013-12-20 09:21:46

pour vérifier le mode de débogage:

#ifdef QT_DEBUG
    //Some codes
#endif

Pour vérifier le mode de lancement:

#ifndef QT_DEBUG    //<== Please note... if not defined
    //Some codes
#endif
4
répondu S.M.Mousavi 2015-11-21 23:11:40