我有以下用于编译 C 程序的简单 Makefile:
all:
gcc -Wall -o myfile myfile.c lol_dht22/dht22.c lol_dht22/locking.c -lwiringPi -lcurl -lm
我想添加一个调试选项,以便我可以使用 -DDEBUG 进行编译,所以如果我运行
make
它正常编译。如果我跑
make debug
它符合调试标志。
我已经阅读了一些教程,但似乎越来越困惑。
最佳答案
如果您想知道如何做好,就在这里。你不做 make debug
,相反,你应该调用
>make
或
>make DEFS=DEBUG
或
>make DEFS='ANY DEFINES YOU WANT'
除了正常的 Make 重建标准之外,以下 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
关于c - 如何向 Makefile 添加调试选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25797287/