Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1296264
  • 博文数量: 436
  • 博客积分: 7854
  • 博客等级: 少将
  • 技术积分: 3225
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-18 16:30
文章分类

全部博文(436)

文章存档

2013年(2)

2012年(56)

2011年(70)

2010年(308)

分类:

2010-04-28 18:53:12

WINDOWS下:

在 Visual C++ 中,如果在编译程序时定义了 _DEBUG 符号,则将启用某些调试功能(如断言)。可以用下列两种方法之一定义 _DEBUG

  • 在源代码中指定 #define _DEBUG,或

  • 指定 /D_DEBUG 编译器选项。(如果是在 Visual Studio 中使用向导创建项目,则 /D_DEBUG 将在“调试”配置中自动定义。)

在定义了 _DEBUG 后,编译器将编译包围在 #ifdef _DEBUG#endif 内的代码段。

-------------------------------------

Linux下:ifdef DEBUG
这是宏语句,是程序员用来调试的,因为内核程序很难用调试器来调试,所以程序员只有自己手工调试,所以在编译的时候加上-DDEBUG参数就可以把DEBUG下面的程序编译进去,在发布的时候不编译就可以了
 
gcc -g -DDEBUG
 
 
gcc参数
-D   允许从编译程序命令行定义宏符号。
一共有两种情况:一种是用-DMACRO,相当于在程序中使用#define MACRO,另一种是用-DMACRO=A,相当于程序中的#define MACRO A.如对下面这代码:
          #ifdefine DEBUG
                    printf("debug message\n");
         #endif
       编译时可加上-DDEBUG参数,执行程序则打印出编译信息


阅读(386) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~