嗨说我有一个名为" myProg"的程序,它需要一个参数,即一个文件说abc.xml,并生成另一个文件说def.out。所以它就像这样
myProg -input abc.xml -output def.out
现在,我想创建一个makefile来添加abc.xml的依赖性,这意味着,如果不更改abc.xml,我不需要调用myProg来进行def.out。我只是想知道如何在makefile中实现这一点?
由于
答案 0 :(得分:0)
创建一个名为Makefile
的文件应该这样做:
def.out : abc.xml
myProg -input $< -output $@
请注意,缩进必须使用制表符完成,但我不能在此处的代码列表中添加制表符。
$<
和$@
是automatic variables,它们将扩展到第一个先决条件和目标。
def.out
将是默认目标,因为它是第一个目标,因此您应该能够运行make
并获得所需的结果。
如果你希望它重新运行,如果程序比输出更新,你可以将它添加到先决条件列表中(假设myProg
在同一目录中......):
def.out : abc.xm myProg
myProg -input $< -output $@