为什么 nmake 在没有依赖项发生变化时执行 link 目标?

Why would nmake execute a link target when no dependents have changed?

我的 nmake makefile 的 link 目标总是被执行 - 即使自上次 nmake 运行 以来没有做任何更改。我不知道要在这里寻找什么,可能出了什么问题。 link.exe 是 运行 多余的,这很烦人。

这是我的 nmake makefile 的要点:

BINDIR=..\bin\x64\release

OBJS= \
    $(BINDIR)\main.obj

{..}.cpp{$(BINDIR)}.obj:
    cl.exe /c /Fo$(BINDIR)\ /Fd$(BINDIR)\ $<

app: $(OBJS)
    link.exe $(CFLAGS) /out:$(BINDIR)\app.exe $(OBJS)

有人知道我可以找什么吗?

我自己回答这个问题,因为我刚刚找到了我遗漏的部分。

当我将 app 目标拆分为一个命令目标和一个无命令目标时,它工作正常:

app.exe: $(OBJS)
    link.exe $(CFLAGS) /out:$(BINDIR)\app.exe $*

app: app.exe