Make

在 Makefile 中標記目標後更改

  • December 12, 2021

我看到一行makefile如下:

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

在我的理解中,$(LAST_TARGET_DIR)/%是一個目標匹配,在目標之後應該是它的依賴。為什麼在這裡更改連結標誌?

這是 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

引用自:https://unix.stackexchange.com/questions/680978