Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: mokynis от Март 13, 2024, 20:59



Название: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 13, 2024, 20:59
все делаю, как делал в qt4 и qt5, но в "выводе приложения", а, собственно, нигде, не вижу вывода qDebug(). Пытался добавить "сопутствующие" библиотеки-ничего не дает
вот скриншот: https://www.dropbox.com/sc/yur6fnkhg7s7wcu/AACSF89mjbKbQDSZ88nuAN39a
Похоже, где-то еще надо "галочку" поставить?


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: tux от Март 13, 2024, 22:00
Что есть "все делаю, как делал в qt4 и qt5"?
Приведите небольшой тестовый проект, что именно вы делаете и что именно не получается.


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 14, 2024, 11:29
вот тут один и тот же проект для qt6 и для qt5. В 5 версии оба раза qDebug выводит сообщение в "вывод приложения", в 6 версии вообще никуда не выводится и при наведении мышки на "qDebug", пишет <no such value>. Хотя до запуска программы при наведении мыши просто всплывает подсказка о самой функции
https://www.dropbox.com/scl/fi/msfljruai8zn2m51c6ntt/5_6.zip?rlkey=oov4gpqdb8i2pljohblyfn19n&dl=0


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: tux от Март 14, 2024, 21:33
Проверил в Qt 5.15.11 и 6.6.1 оба проекта. Qt Creator 12.0.2.
Поведение аналогично в обоих случаях. Всё работает как должно.
Собственно, почему бы не работать? В коде нет ничего особенного.


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: kambala от Март 14, 2024, 23:54
может у тебя 6-ка как-то хитро собрана? сделай отладчиком step into в qDebug, посмотри куда провалится (возможно понадобятся исходники Qt)


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 15, 2024, 10:55
tux :
вот и я думаю, почему бы не работать нормально? Но, зараза, не работает-см. скриншот выше


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 15, 2024, 11:33
kambala
я сам ничего не собирал, скачал с оф. сайта. Пробовал пройти по шагам, ничего не понял: там задействуются 12 файлов, причем сначала как аргумент передается текст , заданный мною в qDebug, а потом, как я понял, начинается проверка, как его выводить, в результате выясняется, что выводить его вообще не надо. Могу скинуть скрины (там их 33 получится), может посмотрите?


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: kambala от Март 15, 2024, 13:30
Может вывод отключен через дефайн QT_NO_DEBUG_OUTPUT?
Цитировать
в результате выясняется, что выводить его вообще не надо
вот тут и надо присмотреться


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: tux от Март 15, 2024, 20:02
kambala
я сам ничего не собирал, скачал с оф. сайта.
А почему бы просто не поставить с родного репозитория дистрибутива? Допустим, на gentoo всё работает "из коробки". По крайней мере у меня.
Или вы под форточками хотите?


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 16, 2024, 09:45
А почему бы просто не поставить с родного репозитория дистрибутива? Допустим, на gentoo всё работает "из коробки". По крайней мере у меня.
Или вы под форточками хотите?
упаси боже. У меня Arch, установил сборку именно с официального репозитория. Пока искал решение, наткнулся на старую жалобу, что подобное у Arch'а уже было и решение было ждать, когда косяк исправят.


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: kambala от Март 16, 2024, 09:47
попробуй сам собрать Qt из исходников


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 16, 2024, 11:27
Может вывод отключен через дефайн QT_NO_DEBUG_OUTPUT?
нет, тут все в порядке. А разбираться в самом Creator'е  мне что-то лень. Буду нужное запихивать в QMessageBox-идиотизм, конечно, но временно сойдет. Спасибо за помощь


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: tux от Март 16, 2024, 12:22
Можно ещё попробовать что-то типа
Код:
#include <QtGlobal>
#include <stdio.h>
#include <stdlib.h>

void myMessageOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
    QByteArray localMsg = msg.toLocal8Bit();
    switch (type) {
    case QtDebugMsg:
        fprintf(stderr, "Debug: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtInfoMsg:
        fprintf(stderr, "Info: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtWarningMsg:
        fprintf(stderr, "Warning: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtCriticalMsg:
        fprintf(stderr, "Critical: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        break;
    case QtFatalMsg:
        fprintf(stderr, "Fatal: %s (%s:%u, %s)\n", localMsg.constData(), context.file, context.line, context.function);
        abort();
    }
}

int main(int argc, char **argv)
{
    qInstallMessageHandler(myMessageOutput); // Install the handler
    QApplication app(argc, argv);
    ...
    return app.exec();
}
Возможно, что в вашем случае сообщения просто не падают в консоль.


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: kambala от Март 16, 2024, 13:28
Может вывод отключен через дефайн QT_NO_DEBUG_OUTPUT?
нет, тут все в порядке. А разбираться в самом Creator'е  мне что-то лень. Буду нужное запихивать в QMessageBox-идиотизм, конечно, но временно сойдет. Спасибо за помощь
а ты уверен, что дело в креаторе? запусти свое приложение в терминале и проверь будет ли вывод.


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 18, 2024, 02:15
а ты уверен, что дело в креаторе? запусти свое приложение в терминале и проверь будет ли вывод.
не уверен. Создаю консольное приложение QT. Вот код
Код:
#include <QCoreApplication>
#include <QDebug>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    qDebug()<<"1234";

    return a.exec();
}
Ошибок нет, все выводится, хоть из Creator'а, хоть из консоли. Но только в режиме "выпуск". В режиме "отладка" не выдает ничего. Чет я ничего не понимаю


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: kambala от Март 18, 2024, 10:48
у меня подозрение, что в исходной программе дело в том, что идет вывод кириллическких символов. У тебя случайно не выставлены какие-нить странные переменные среды, отвечающие за кодировку? В норме должно быть LC_ALL=en_US.UTF-8 / LANG=en_US.UTF-8 / LC_CTYPE=UTF-8 (это я со своей макос взял, но под линуксом вроде такие же)

так а если запустить ту исходную программу в терминале, что-то выводит?


Название: Re: qt6+QtCreator12 - не работает qDebug()
Отправлено: mokynis от Март 22, 2024, 11:02
костыль:
чтобы qDebug выводил информацию хотя бы в терминал, в
Проекты-(сбоку)Сборка и запуск-Запустить-(основное окно)Запустить-Запускать в терминале (поставить галочку)