Qt ошибка компиляции связанная с QMessageLogger в режиме release

Задавал ранее этот вопрос в англоязычном сегменте https://stackoverflow.com/q/79571591/21579468

Пытаюсь использовать logging categories с Qt 5.12. Но получаю ошибку компиляции. Использую в Qt Creator-проекте Qmake and MinGW.

Подробности:

Делаю объявление для новой logging category:

Q_DECLARE_LOGGING_CATEGORY(logInfo)

Делаю определение для этой logging category:

Q_LOGGING_CATEGORY(logInfo,     "Info: ")

Пытаюсь использовать новую категорию в main() так:

qDebug(logInfo()) << "Msg Debug";

В pro-файл добавлены дефайны:

CONFIG(release, debug|release) {
    # release
    DEFINES += QT_NO_DEBUG_OUTPUT
    DEFINES += NDEBUG
}

Когда делаю build для debug, ошибок не возникает. Но когда для release, получаю ошибку компиляции:

C:\projects\Src\main.cpp:27: error: no matching function for call to 'QMessageLogger::noDebug(const QLoggingCategory&)'
../Src/main.cpp: In function 'int qMain(int, char**)':
../Src/main.cpp:27:25: error: no matching function for call to 'QMessageLogger::noDebug(const QLoggingCategory&)'
         qDebug(logInfo()) << "Msg Debug"; //TODO
                         ^

и

C:\Qt\Qt5.12.12\5.12.12\mingw73_64\include\QtCore\qglobal.h:1206: In file included from C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtCore/qglobal.h:1206:0,
In file included from C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtCore/qglobal.h:1206:0,
                 from C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtGui/qtguiglobal.h:43,
                 from C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtWidgets/qtwidgetsglobal.h:43,
                 from C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtWidgets/qmainwindow.h:43,
                 from C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtWidgets/QMainWindow:1,
                 from ../../Utility1/Src/MainWindow/MainWindow.h:4,
                 from ../Src/main.cpp:1:
C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtCore/qlogging.h:97:10: note: candidate: void QMessageLogger::noDebug(const char*, ...) const
     void noDebug(const char *, ...) const Q_ATTRIBUTE_FORMAT_PRINTF(2, 3)
          ^~~~~~~
C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtCore/qlogging.h:97:10: note:   no known conversion for argument 1 from 'const QLoggingCategory' to 'const char*'
C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtCore/qlogging.h:140:14: note: candidate: QNoDebug QMessageLogger::noDebug() const
     QNoDebug noDebug() const Q_DECL_NOTHROW;
              ^~~~~~~
C:/Qt/Qt5.12.12/5.12.12/mingw73_64/include/QtCore/qlogging.h:140:14: note:   candidate expects 0 arguments, 1 provided

Пользовался этой статьёй https://doc.qt.io/qt-5/debug.html. При цели debug выводит в консоль (похоже библиотека добавляет дополнительно часть строки " :"):

Info: : Msg Debug

Вопрос: так некорректно делать?

Доп. информация:

при таком использовании выводит как ожидалось:

qCDebug(logInfo()) << "Msg Debug";

Ответы (0 шт):