非常感谢您的评论。在这种情况下实际上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应该是错误的。
但整个系统工作。这是怎么发生的?任何人给我的建议。提前致谢