无法在 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()
我从事 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()