无法在 relesae 构建中抑制 QDebug 输出

Can not surpress QDebug output in relesae build

我从事 Qt 项目并使用 cmake。在我的 CMakeLists.txt 中,我有:

target_compile_definitions(${PROJECT_NAME} PUBLIC
        QT_DEBUG_NO_OUTPUT
        QT_NO_INFO_OUTPUT
        QT_NO_WARNING_OUTPUT
        )

为了在我的 main.cpp 中进行测试,我有:

#ifndef NDEBUG
    qDebug() << "QDEBUG IS ACTIVE!";
    std::cout << "Compiled in DEBUG\n";
#else
    qDebug() << "QDEBUG IS ACTIVE!";
    std::cout << "Compiled in RELEASE\n";
#endif

无论我是在 Release 还是 Debug 配置中编译,“QDEBUG IS ACTIVE!”行都没有关系。打印出来。

P.S。我获得了用于发布和调试的正确 cout,因此配置正常工作!

我做错了什么?

将拼写错误 QT_DEBUG_NO_OUTPUT 更改为 QT_NO_DEBUG_OUTPUT 以便使用 qDebug。

如果您只想为发布版本禁用 qDebug、qInfo 和 qWarning,请将以下条件添加到 CMakeLists.txt:

string(TOLOWER ${CMAKE_BUILD_TYPE} build_type)
if (build_type STREQUAL release)
    target_compile_definitions(${PROJECT_NAME} PUBLIC
        QT_NO_DEBUG_OUTPUT
        QT_NO_INFO_OUTPUT
        QT_NO_WARNING_OUTPUT
        )
endif()