Makefile 中目标后的标记更改

Makefile 中目标后的标记更改

我看到一行 makefile 如下:

$(LAST_TARGET_DIR)/%: LFLAGS += -lpthread -lrt -Wl,-uevaluate

在我的理解中,$(LAST_TARGET_DIR)/%是一个目标匹配,目标之后应该是它的依赖项。为什么链接标志在这里改变?

答案1

这是 GNU make 的一项功能,允许对一个特定的变量使用不同的值目标或者图案

例如,

LFLAGS = -lm
$(LAST_TARGET_DIR)/%: LFLAGS += -lpthread

%.exe: %.o common.o
    $(CC) -o $@ common.o $(@:%.exe=%.o) $(LFLAGS)

导致每个.exe文件都与 链接-lm,但目录中的文件$(LAST_TARGET_DIR)将与 链接-lm -lpthreads

相关内容