make每次编译一些程序,即使它们刚编译完毕

时间:2015-07-01 01:16:35

标签: makefile

下面有一个Makefile。每当我运行make clean然后make时,所有内容都会再次编译。但就在那之后,如果我再次运行make一部分程序:convert_genomesalign_bsmethyl_extract再次编译,这很奇怪,因为他们刚刚编译。

我在不同的操作系统中对此进行了测试,结果是一样的。你有什么想法吗?

修改

当我将convert-genomes更改为convert_genomes时(同样针对其他两个程序)问题也解决了,但我仍然不知道-和{{之间的差异是什么导致我的问题的_中的1}}

Makefile

1 个答案:

答案 0 :(得分:1)

如果你的目标是convert-genomes,但程序是convert_genomes,那么每次你尝试制作convert-genomes时,文件convert-genomes都不存在,所以它已经出来了日期,以及制定它的规则'再次运行,重新创建convert_genomes而不是create-genomes

make制作文件。如果您告诉make'此规则将生成文件F'实际上规则会创建一些其他文件G,然后make将永远不会发现F是最新的 - 正如您仔细演示的那样,尽管是偶然的。