它恰好需要从一个文件夹中编译所有* .c文件,除了一个文件夹,它具有完全相同的名称并从其他地方编译。我解决了为每个我想要的文件提供vpath
vpath plant.c $(KMLROOT)/examples/$(KML_FLAVOUR)/pdk
vpath app.c $(KMLROOT)/examples/$(KML_FLAVOUR)/pdk
vpath app_test.c $(KMLROOT)/examples/$(KML_FLAVOUR)/pdk
vpath app_echo.c $(KMLROOT)/examples/$(KML_FLAVOUR)/pdk
现在,如果我写
vpath %.c $(KMLROOT)/examples/$(KML_FLAVOUR)/pdk
我不想包含的文件将在路径上。
有可能编写一些规则并排除特定文件吗?
答案 0 :(得分:0)
如果您需要为每个文件提供特定路径,那么vpath就没用了。
由于您没有提供有关您对源文件执行操作的任何其他信息,因此我无法提供完整的示例,但为什么不执行以下操作:
KMLSRC = plant.c app.c app_test.c app_echo.c
KML_FULLSRC = $(addprefix $(KMLROOT)/examples/$(KML_FLAVOUR)/,$(KMLSRC))