1
4
您可能在顶层有一个名为“蜘蛛猴”的文件或目录。make认为这就是它应该创造的,因为它已经存在了,所以停止。 编写makefile时要遵循的最重要的规则之一是 每个目标应该创建一个与目标同名的文件 . 换句话说,如果你有
该命令应该生成一个名为“a”的文件。 不生成文件但仅作为占位符存在的规则被调用 伪目标 ,它们应该这样声明:
make将始终假设必须重新生成a。 此外,一般来说 不要使用“make”递归调用make,而是使用$(make) . 编辑:将“伪”改为“假” |
2
1
仅检查与规则目标同名的文件(或目录)的存在性,如果存在(并且比依赖项更新),则从Make的角度看,没有其他事情可做。 所以你的问题是你有一个蜘蛛猴规则(没有依赖性)以及一个名为蜘蛛猴的目录,然后make认为“目标已经制定,我什么都不做”。要让make做你想做的事情,请重命名spidermonkey规则(或目录)。 说到递归,顺便提一下,这不一定是个好主意, 看见 Recursive Make Considered Harmful . |
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 年前 |