我不知道如何实现这一点,我有两个规则,输出def.out相同,但它依赖于两个不同的文件(不是同时),一个是abc.xml,另一个是def.xml 。在makefile中,当我调用def.out时,它如何知道调用第一个规则或第二个规则?同样,这个def.out并不同时依赖于abc.xml和def.xml。
def.out:abc.xml ......
def.out:def.xml ......
答案 0 :(得分:1)
一个建议是不要有两个相同的目标。
def_abc.out:
和
def_def.out:
...因为你必须告诉make实用程序你要使用哪个规则,不是吗?或者,如果您认为系统能够自行解决问题,那么请使用一个目标,但实际上有两个操作。
def.out: (测试这是什么时候的行动) (如果是" abc.xml时间") make def_abc.out (其他) make def_def.out
您可以根据需要添加代码,以便在合适的时间重命名对象。
但是你问过"它如何知道调用第一条规则或第二条规则?" 我的答案是"你要么在打电话时告诉它,要么告诉它如何知道你何时编写了makefile"。