自定义的Qt程序打印调试信息的方法


在程序的开发过程中,往往需要添加打印消息,来确定程序Bug的来源。工作的要求是使用qmake生成Makefile,

然后,再使用make来进行构建目标程序。

1.首先,定义自己的打印函数,比如:

  1. #ifndef SHINECOMMON_H   
  2. #define SHINECOMMON_H   
  3. #include <stdio.h>   
  4.   
  5. #ifdef SHINEDEBUG   
  6.         #define SHINE_dputs(str) do{ printf("%s %s %d: %s\n", __FILE__, __func__, __LINE__, str); }while(0);   
  7.         #define SHINE_dprintf(fmt, args...) do{ printf("%s, %s, %d: "fmt"\n", __FILE__, __func__, __LINE__, ##args); }while(0);   
  8. #else   
  9.         #define SHINE_dputs(str) do{}while(0);   
  10.         #define SHINE_dprintf(fmt, args...) do{}while(0);   
  11. #endif   
  12.   
  13. #endif // SHINECOMMON_H  

2. 在想要使用打印调试信息的文件中包含上面的头文件,或者拷贝打印函数进去

在想要打印信息的地方直接调用 SHINE_dputs() 就可以,比如:

  1. SHINE_dprintf("%s, %x, %s, %f""Just for test", 100010, "abcdefg", 1.23234);  
  2. SHINE_dputs("Just for test too");  

3. 为了优化Qt程序在嵌入式平台上面的性能,最好确认一下.pro文件中是否有如下的配置:

CONFIG += qt embeded release   

如果,没有最好添加进去。

4. 运行 qmake "DEFINES += SHINEDEBUG" .

把其中的SHINEDEBUG替换成你定义的宏即可。 这样会生成Makefile。

这时,可以看一下Makefile,里面DEFINES就会包含我们添加的宏

5. make 构建我们的目标程序

上面,这5步就可以构建打印调试信息的程序,如果我们想去掉,只需要重新运行qmake(注意不加参数)即可。

相关内容