![]() |
1
5
指挥部
但没有理由这么做。您可以使命令更具选择性,以便它只生成一个实际目标对象。这样,Make就不会浪费时间一遍又一遍地重建同一个对象,如果更改了一个或两个源文件,Make将只重建相关对象,而不是所有对象:
这个规则是保守的——它假设每个对象都依赖于每个报头,所以它有时会不必要地重建内容。如果你知道真正的依赖关系,你可以手工做得更好,或者用更先进的技术自动做得更好。
编辑:
你的“更新2”是个不错的解决方案,但我建议你加上一行
告诉Make不会有名为“obj”的文件。否则Make将运行
这仍然有一个问题,如果你改变一个源文件,例如。
这个
编辑:
Jack Kelly
(诅咒他!)已经指出我对虚假目标的工作方式是错误的
|
![]() |
2
1
看起来您没有创建.o文件的规则,因此make使用默认规则。 试着说:
在第11行构建命令之前的行上 您可以看到“开始编译”是在gcc行之后输出的。 或许第10行应该是:
|
![]() |
Jeremy L. · 在变量名中查找子字符串 5 月前 |
![]() |
wvxvw · 在Make规则中将源和目标配对 6 月前 |
![]() |
thetango · Makefile:多次执行目标 6 月前 |
![]() |
Bokambo · make:MakeFile无需执行任何操作 7 月前 |
![]() |
Gergely · rm命令在shell中工作,但在Makefile中不工作 11 月前 |