8
votes

stdout / cout de l'application lancée à partir de Qt Creator?

J'apprends QT sous Windows pendant un peu de temps (arrière-plan in Unix / intégré) et que STDERR / STDOUT est largué quelque part (Test d'unité / journalisation / débogage / débogage) de mon application GUI Win32 QT. Cela semble être une grande commande dans Windows et J'ai trouvé cet article sur Stackoverflow qui explique pourquoi.

Je me demande pourquoi Qt n'a pas de mécanisme simple pour effectuer certaines des suggestions de la publication des bâtiments de débogage.

Est-ce que une telle installation existe déjà dans Qt ou suis-je parti pour faire rouler la mienne (ou trouver un syslog Lib)?


0 commentaires

4 Réponses :


14
votes

Qdebug () et les fonctions associées sont utiles pour ce genre de chose - sera envoyé au débogueur (si vous utilisez QT Creator, cela les choisira facilement!)

#include <QDebug>

qDebug() << "x is: " << x;


0 commentaires

2
votes

Vous pouvez toujours démarrer vos programmes à partir de la ligne de commande pour voir la sortie STDOUT (CMD.EXE). En outre, comme le dit Paul Dixon, en utilisant Qdebug (), vous devriez pouvoir voir la sortie dans le débogueur.

#include <QDebug>
...
{
   ...
   int x = 5;
   qDebug() << "x is: " << x;
}


0 commentaires

2
votes

Un moyen peu coûteux est de simplement rouvrir Stdout / Err (bien au moins en Win32, je suppose que cela fonctionnera aussi avec QT)

#include <stdio>

//add this at the beginning of your main
freopen("c:\\temp\\stdout.txt","w",stdout);
freopen("c:\\temp\\stderr.txt","w",stderr);


1 commentaires

Merci pour le pointeur, j'ai ma propre infrastructure de journalisation que j'ai inventée qui ressemble beaucoup à Log4CXX. Je vais devoir regarder de plus près celui-là pour voir si je devrais l'utiliser à la place.



1
votes

J'ai trouvé un paramètre sous Outils -> Options -> Build & Run -> [x] Fusionner STDERR et STDOUT . .

qui aidera les choses envoyées à la cout à être montrées.


0 commentaires