c - 如何向 Makefile 添加调试选项

标签 c makefile

我有以下用于编译 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/

相关文章:

mysql - 使用 JOIN 语句时阅读器不起作用

c - 数组比较中的意外行为

c - Makefile 在先决条件中使用目标名称作为通配符

c - 为什么这个程序没有错误?

css - 使用 CSS 表 (GTK+3) 更改 GtkToggleToolButton 的文本颜色

c - 仅将字符数组的第一个元素传递给函数 C++

c - 未找到 libtool 命令

linux - 树莓派 : make command not working with below makefile

c++ - 为什么cmake不在makefile中加入库链接命令?

gcc - Makefile:发出警告 gcc 版本低于 4.8.0