1
5
指挥部
但没有理由这么做。您可以使命令更具选择性,以便它只生成一个实际目标对象。这样,Make就不会浪费时间一遍又一遍地重建同一个对象,如果更改了一个或两个源文件,Make将只重建相关对象,而不是所有对象:
这个规则是保守的——它假设每个对象都依赖于每个报头,所以它有时会不必要地重建内容。如果你知道真正的依赖关系,你可以手工做得更好,或者用更先进的技术自动做得更好。
编辑:
你的“更新2”是个不错的解决方案,但我建议你加上一行
告诉Make不会有名为“obj”的文件。否则Make将运行
这仍然有一个问题,如果你改变一个源文件,例如。
这个
编辑:
Jack Kelly
(诅咒他!)已经指出我对虚假目标的工作方式是错误的
|
2
1
看起来您没有创建.o文件的规则,因此make使用默认规则。 试着说:
在第11行构建命令之前的行上 您可以看到“开始编译”是在gcc行之后输出的。 或许第10行应该是:
|
Darky · 多重定义…c++vsCode[重复] 2 年前 |
Jim Merkel · 软件包管理器如何知道在哪里安装文件 2 年前 |
franco yang · makefile中的循环main 2 年前 |
dopller · 使用cmake将仅标题库包含到我的项目时出错 2 年前 |
Andres Moreno Abrego · 为什么当BOOL_VAR为false时,Makefile表达式“export INTEGER_VAR?=$(if$(BOOL_VAR),2,5)”会导致INTEGER_VAR=2? 2 年前 |
miterhen · 发生错误后,如何继续中断编译? 6 年前 |