Makefile ------ 在编译器参数选项中(宏定义-D)进行条件编译
在Makefile中我们可以通过宏定义来控制源程序的编译(条件编译)。只要在Makefile中的CFLAGS(变量名随意,一般取名CFLAGS)中通过选项-D来指定定义的宏即可。
如:
CFLAGS += -D YUQIANG
在编译的时候加上此选项就可以了: $(CC) $(CFLAGS) $^ -o $@
例如:
Makefile文件内容为:
CC = gcc RM = rm CFLAGS += -D YUQIANG TARGETS := myapp all:$(TARGETS) $(TARGETS):main.c $(CC) $(CFLAGS) $^ -o $@ clean: $(RM) -f *.o $(RM) -f $(TARGETS)
main.c文件的内容为:
#include <stdio.h> int main() { #ifdef YUQIANG printf("Hello Yu Qiang, How are you?/n"); #else printf("Sorry to lost you. /n"); #endif return 0; }
执行:make clean all
执行:./myapp
输出结果:Hello Yu Qiang, How are you?