0

非常感谢您的评论。在这种情况下实际上VPATH是不使用的。

我编写了一些 makefile 来递归地构建我的项目。

根目录中的部分makefile看起来像这样,

VPATH += $(shell find -type d)
export VPATH

#Codes to generate $(ARXIVS), i.e. the list of all local archives,
#is omitted here to save spaces
all : main.o $(ARXIVS)

$(ARXIVS) :
           $(MAKE) --directory $(@D)

.PHONY : $(ARXIVS) all

如您所见,我将变量传递VPATH给 sub- make,以节省一些计算成本。整个系统正常工作。

但是子目录中的搜索路径与根目录中的搜索路径不同。

我已经在 submake中打印了 VAPTH 的值,这些路径确实是相对于根目录的路径。所以 submake 中的 VPATH应该是错误的。

但整个系统工作。这是怎么发生的?任何人给我的建议。提前致谢

4

0 回答 0