0

它碰巧需要从一个文件夹编译所有 *.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

我不想包含的文件将在路径上。

有可能写一些规则并排除特定文件吗?

4

1 回答 1

0

如果你需要为每个文件提供一个特定的路径,那么 vpath 就没用了。

由于您没有提供有关您如何处理源文件的任何其他信息,因此我无法给出完整的示例,但是您为什么不这样做:

KMLSRC = plant.c app.c app_test.c app_echo.c

KML_FULLSRC = $(addprefix $(KMLROOT)/examples/$(KML_FLAVOUR)/,$(KMLSRC))
于 2013-07-25T14:31:10.750 回答