我在项目的根目录中有一个主生成文件。在包含目录中还有另一个 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
我认为递归调用和直接调用之间应该有区别,但我不知道它是什么。