8

私はしばらくの間Windowsでqtを学習していて(UNIXのバックグラウンド/埋め込み)、win32 qtGUIアプリからstderr/ stdoutをどこかにダンプ(ユニットテスト/イベントロギング/デバッグ)したいと思っています。それはウィンドウズでは難しい注文のようです、そして私はその理由を説明するstackoverflowに関するこの投稿を見つけました。

デバッグビルドの投稿にある提案のいくつかを実行するための単純なメカニズムがqtにないのはなぜだろうと思います。

そのような機能はすでにqtに存在しますか、それとも私は自分でロールする(またはsyslog libを見つける)ために残されていますか?

4

4 に答える 4

14

qDebug()および関連する関数は、そのようなものに便利です-デバッガーに送信されます(Qt Creatorを使用している場合は、それらを簡単に取得できます!)

#include <QDebug>

qDebug() << "x is: " << x;
于 2009-08-13T18:54:24.283 に答える
2

コマンドラインからいつでもプログラムを起動して、stdout出力(cmd.exe)を確認できます。また、Paul Dixonが言ったように、qDebug()を使用すると、デバッガーで出力を確認できるはずです。

#include <QDebug>
...
{
   ...
   int x = 5;
   qDebug() << "x is: " << x;
}
于 2009-08-13T18:56:52.517 に答える
2

安価な方法の 1 つは、単純に stdout/err を再度開くことです (少なくとも win32 では、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);

より深刻なトレース/ロギングが必要な場合は、log4cxx などを検討してください。

于 2009-08-13T19:07:33.753 に答える
1

の下に設定が見つかりましたTools -> Options -> Build & Run -> [X] Merge stderr and stdout

これは、c に送信されたものが表示されるのに役立ちます。

于 2012-09-21T04:10:25.077 に答える