Makefile如何实现单行多字符串替换以简化.o文件变量定义
精简写法方案
你可以直接用Make内置的notdir函数替代手动写的路径前缀替换逻辑,有1行和2行两种可选写法:
2行写法(可读性更高,推荐)
UTILS := $(notdir $(wildcard ./u/*.c)) OBJ := $(UTILS:.c=.o)
1行写法(完全合并逻辑)
OBJ := $(patsubst %.c, %.o, $(notdir $(wildcard ./u/*.c)))
说明
$(notdir)是Make原生提供的去路径函数,刚好实现你去掉./u/前缀的需求,比自定义模式替换更简洁- 两种写法的输出和你原有三段式代码完全一致,没有兼容性问题
内容的提问来源于stack exchange,提问作者Bunyod Shams
相关产品推荐
相关产品推荐

