我的项目根目录中有一个主makefile。 include 目录中还有另一个makefile。第二个makefile使用include关键字来调用其他项目中的其他makefile,而我无法控制它。我不能直接包含这个makefile,因为它有一些与我拥有的目标同名的目标。作为一种解决方法,我决定使用递归调用。当我通过shell运行这个makefile时,使用以下命令,它可以很好地工作:
my_project$ make -C include -f Second_Makefile
但是当我通过主Makefile调用它时,它的行为不正常意味着它报告了一些项目特定的错误,这些错误源于第二个makefile中很难找到的包含文件。
all:
@$(MAKE) -C include -f Second_Makefile
我也试过以下这一行,但没有帮助:
cd include; @$(MAKE) -f Second_Makefile
我认为递归通话和直接通话之间应该存在差异,但我不知道它是什么。