C++ 检查依赖关系的深度有多深?

C++ 检查依赖关系的深度有多深?,c++,compilation,makefile,dependencies,C++,Compilation,Makefile,Dependencies,我的install目标取决于我的all目标,然后它取决于需要安装的程序名prog。问题是,当我更改prog.cpp并运行makeinstall时,它不会重新编译。但是,当我刚刚运行make时,它确实会运行检查是否有需要更新的目标的实际深度是多少?因为它似乎很快就会停止…检查依赖项,无论它们有多深,但它不会自动执行任何操作。如果“makeinstall”没有建立一个正确的依赖链,导致实际的构建,那么它就不会发生 例如: install: cp Program /usr/bin/Program

我的
install
目标取决于我的
all
目标,然后它取决于需要安装的程序名
prog
。问题是,当我更改
prog.cpp
并运行
makeinstall
时,它不会重新编译。但是,当我刚刚运行
make
时,它确实会运行检查是否有需要更新的目标的实际深度是多少?因为它似乎很快就会停止…

检查依赖项,无论它们有多深,但它不会自动执行任何操作。如果“makeinstall”没有建立一个正确的依赖链,导致实际的构建,那么它就不会发生

例如:

install:
   cp Program /usr/bin/Program
就这么做了:它将复制程序,而不做其他事情

install: Program
   cp Program /usr/bin/Program

说“安装”取决于“程序”,所以在实际执行与“安装”相关联的命令之前,make将寻找与“程序”相关的内容。

比这更深入,所以问题在于其他方面。如果未在命令行上指定目标,则该目标是文件中的第一个目标(或IIRC,如果适用,则是文件中包含的文件中出现的第一个目标),或.DEFAULT_目标,不一定是“全部”。