使用QT_NO_DEBUG

fengwanzk 2012-05-19 12:09:44

int a = 0;
Q_ASSERT_X( a != 0, "x.cpp", "a = 0" );

文档上说,当第一个参数的值为false时,会有一个输出。可是我的程序总是没有输出。
1. 检查工程文件:

DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_DEBUG (我的工程中没有这一句)
TEMPLATE = app
CONFIG += qt warn_on release

2. 使用qmake-qt4命令生成的Makefile文件总是自动包括:
DEFINES += -DOT_NO_DEBUG_OUTPUT -DOT_NO_DEBUG ......
3. 如果在工程中使用了“DEFINES += QT_NO_DEBUG_OUTPUT”,是不是“Q_ASSERT_X”之类的宏就不起作用了?可是,文档中说是如果定义了“QT_NO_DEBUG”后,“Q_ASSERT_X”之类的宏才不气作用的,不知道哪里出了问题。
请教,“QT_NO_DEBUG_OUTPUT QT_NO_DEBUG ”为什么总是会自动出现在makefile中,不能在工程文件中对它进行控制吗?
我想使用Q_ASSERT_X等宏,要在哪个文件做什么设置吗?谢谢
...全文
918 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
念茜 2012-05-21
  • 打赏
  • 举报
回复
如果你没有在pro文件中写DEFINES += QT_NO_DEBUG_OUTPUT但是用qmake生成的Makefile却有,就说明你在本地编译qmake的时候configure 有配置 no-debug的选项。
fengwanzk 2012-05-21
  • 打赏
  • 举报
回复
我在工程文件中加入了:CONFIG += debug。好了。多谢。

16,201

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧