我尝试对该跳过的文件执行完全相同的编译命令,并且正在正确编译。但是当我把它放在make文件中时,它就被跳过了。生成每个其他文件。
答案 0 :(得分:1)
如果没有真正看到makefile
(您还没有提供),我们只能猜测(虽然我想认为它是受过教育的猜猜。)
由于make
的工作原理是检查文件时间戳以查看是否需要重建,这是一件值得关注的事情。如果目标的时间戳晚于所有依赖项的时间戳,则不会构建目标。
另一个是确保您的顶级规则实际上依赖于您在层次结构中的某个位置尝试构建的内容。我的意思是规则集:
all: xyzzy
xyzzy:
touch xyzzy
plugh:
touch plugh
使用make all
命令永远不会触摸plugh
,因为它不在all
之外的依赖关系层次结构中。
并且make
通常提供用于调试的命令行选项(如GNU Make中的-d
标志),它将告诉您为什么它做出决定&& #39;制作。如果你想了解发生了什么,你应该使用它们,这样可以更容易地调试makefile
。