如何向Makefile添加调试选项
我有以下简单的Makefile,我用它来编译C程序:
all: gcc -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm
我想添加一个调试选项,这样我就可以使用-DDEBUG进行编译,所以如果我运行的话
make
它正常编译。 如果我跑
make debug
它与调试标志汇编。
我已阅读了一些教程,但似乎越来越困惑。
这是一个示例makefile,它有两个您正在寻找的选项。
all: gcc -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm debug: gcc -DDEBUG -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm
您只需要添加一个调试选项,它与您已经声明的’all’选项的方式类似。
如果你想知道如何做得好,就在这里。 你不应该make debug
,而应该调用
>make
要么
>make DEFS=DEBUG
要么
>make DEFS='ANY DEFINES YOU WANT'
除了正常的Make rebuild标准之外,以下Makefile还可以识别基于DEFS
重建。
define DEPENDABLE_VAR .PHONY: phony $1: phony @if [[ `cat $1 2>&1` != '$($1)' ]]; then \ echo -n $($1) > $1 ; \ fi endef $(eval $(call DEPENDABLE_VAR,DEFS)) .PHONY: all all: myfile SRCS := myfile.c lol_dht22/dht22.c lol_dht22/locking.c myfile: $(SRCS) Makefile DEFS gcc $(addprefix -D, $(DEFS)) -Wall -o $@ $(SRCS) -lwiringPi -lcurl -lm