下面有一个Makefile。每当我运行make clean
然后make
时,所有内容都会再次编译。但就在那之后,如果我再次运行make
一部分程序:convert_genomes
,align_bs
和methyl_extract
再次编译,这很奇怪,因为他们刚刚编译。
我在不同的操作系统中对此进行了测试,结果是一样的。你有什么想法吗?
修改
当我将convert-genomes
更改为convert_genomes
时(同样针对其他两个程序)问题也解决了,但我仍然不知道-
和{{之间的差异是什么导致我的问题的_
中的1}}
Makefile
答案 0 :(得分:1)
如果你的目标是convert-genomes
,但程序是convert_genomes
,那么每次你尝试制作convert-genomes
时,文件convert-genomes
都不存在,所以它已经出来了日期,以及制定它的规则'再次运行,重新创建convert_genomes
而不是create-genomes
。
make
制作文件。如果您告诉make
'此规则将生成文件F'实际上规则会创建一些其他文件G,然后make
将永远不会发现F是最新的 - 正如您仔细演示的那样,尽管是偶然的。