在开发中经常会遇到需要条件编译一段代码,即:
#ifdef DEBUG
{ 如果定义了DUBUG,则执行此段代码!}
#else
{否则执行此段代码!}
这就需要通过宏开关来进行条件编译,也就是常说的编译开关。
下面给出详细的代码实现。
//hello.c
#include<stdio.h>
void main()
{
#ifdef DEBUG
printf("#ifdef DEBUG is running!\n");
#else
printf("#else is running!\n");
#endif
return ;
}
//Makefile
ifeq ($(debug),yes)
CFLAGS:= -DDEBUG
endif
hello:hello.c
gcc $(CFLAGS) $< -o $@
测试结果:
$ make
gcc hello.c -o hello
$ ./hello
#else is running!
$rm hello
$ make debug:=yes
gcc -DEBUG hello.c -o hello
$ ./hello
#ifdef DEBUG is running!