我看到一行 makefile 如下:
$(LAST_TARGET_DIR)/%: LFLAGS += -lpthread -lrt -Wl,-uevaluate
Run Code Online (Sandbox Code Playgroud)
在我的理解中,$(LAST_TARGET_DIR)/%是一个目标匹配,目标之后应该是它的依赖项。为什么链接标志在这里改变?
这是 GNU make 的一项功能,允许对一个特定目标或模式使用不同的变量值。
例如,
LFLAGS = -lm
$(LAST_TARGET_DIR)/%: LFLAGS += -lpthread
%.exe: %.o common.o
$(CC) -o $@ common.o $(@:%.exe=%.o) $(LFLAGS)
Run Code Online (Sandbox Code Playgroud)
导致每个.exe文件都与 链接-lm,但目录中的文件$(LAST_TARGET_DIR)将与 链接-lm -lpthreads。
| 归档时间: |
|
| 查看次数: |
850 次 |
| 最近记录: |