什么';makefile跳过生成一个可执行文件的可能原因是什么?

什么';makefile跳过生成一个可执行文件的可能原因是什么?,makefile,Makefile,然后,我尝试对跳过的文件执行完全相同的编译命令,并且该文件正在正确编译。但当我把它放进make文件时,它只是被跳过了。每生成一个其他文件 没有实际看到makefile(您没有提供),我们只能猜测(尽管我认为这是一个有根据的猜测) 由于make通过检查文件时间戳来查看它们是否需要重建,所以这是一个需要考虑的问题。如果目标的时间戳晚于所有依赖项的时间戳,则不会生成目标 另一种方法是确保顶层规则实际上依赖于层次结构中的某个地方您试图构建的内容。我指的是规则集: all: xyzzy xyzzy:

然后,我尝试对跳过的文件执行完全相同的编译命令,并且该文件正在正确编译。但当我把它放进make文件时,它只是被跳过了。每生成一个其他文件

没有实际看到
makefile
(您没有提供),我们只能猜测(尽管我认为这是一个有根据的猜测)

由于
make
通过检查文件时间戳来查看它们是否需要重建,所以这是一个需要考虑的问题。如果目标的时间戳晚于所有依赖项的时间戳,则不会生成目标

另一种方法是确保顶层规则实际上依赖于层次结构中的某个地方您试图构建的内容。我指的是规则集:

all: xyzzy

xyzzy:
    touch xyzzy

plugh:
    touch plugh
使用命令
makeall
将永远不会触摸
plugh
,因为它不在关闭
all
的依赖关系层次结构中

make
通常提供用于调试的命令行选项(如gnumake中的
-d
标志),这将告诉您它为什么要做出决策。如果您想了解发生了什么,您可能应该使用它们,因为这样可以更容易地调试
makefile