我有一些对象文件,其路径可能看起来像这样:
'../../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))