我有一些目标文件,其路径可能如下所示:
'../../src/foo/bar.c'
我希望他们输出到
'build/src/foo/bar.o'
目前使用:
COBJS := $(notdir $(CFILES)) COBJS := $(patsubst %,$(BUILD)%.o,$(COBJS))
我能做到
'build/bar.o'
如果任何两个库/项目包含相同的类名,则会出现问题.
所以问题是,如何从Make中的路径中删除多个’../’.我尝试了明显而天真的方法而没有结果.
更新,以下将完全匹配../../并将其替换为其余部分.这是完美的,除了它特定于../../.只需要让它匹配任意数量的../../
COBJS := $(CFILES:../../%=%)
更新,
解决了,只有三个声誉害羞发布我自己的答案.
COBJS := $(subst ../,$(CFILES))