为啥在没有依赖项发生更改时,nmake 会执行链接目标?
Posted
技术标签:
【中文标题】为啥在没有依赖项发生更改时,nmake 会执行链接目标?【英文标题】:Why would nmake execute a link target when no dependents have changed?为什么在没有依赖项发生更改时,nmake 会执行链接目标? 【发布时间】:2019-02-25 09:44:22 【问题描述】:我的 nmake makefile 的链接目标始终被执行 - 即使自上次运行 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)
有人知道我要找什么吗?
【问题讨论】:
【参考方案1】:我自己回答这个问题,因为我刚刚找到了我丢失的部分。
当我将app
目标拆分为命令目标和无命令目标时,它可以正常工作:
app.exe: $(OBJS)
link.exe $(CFLAGS) /out:$(BINDIR)\app.exe $*
app: app.exe
【讨论】:
以上是关于为啥在没有依赖项发生更改时,nmake 会执行链接目标?的主要内容,如果未能解决你的问题,请参考以下文章
当我使用的库使用的库发生更改时,我的可执行文件是不是需要重新链接?