Makefile 文件目标是否仅为虚假目标订单的先决条件?
文章提到“没有文件目标应该是.PHONY的先决条件。” 我想你可以把它改写成“不要声明文件目标是假的” 为了表达依赖关系,对于人类读者以及Make,我想您有时需要将文件目标作为虚假目标的先决条件。 那么,这些应该是订单目标吗? 据我所知,在这种情况下,order only和not的唯一区别在于它们是否出现在$^或$|中,因此这可能取决于您在该问题上想要的行为,分别是您想要表达的依赖类型 我说的对吗?(如果没有一个或另一个明确的理由,)是否有任何理由选择一个而不是另一个(仅订单或不订单) 我猜你有时需要文件目标作为虚假目标的先决条件 事实上,大多数时候。考虑“标准”的东西: 但是“不要声明文件目标是假的/没有文件目标应该是.PHONY的先决条件”是完全不同的事情。这意味着Makefile 文件目标是否仅为虚假目标订单的先决条件?,makefile,gnu-make,Makefile,Gnu Make,文章提到“没有文件目标应该是.PHONY的先决条件。” 我想你可以把它改写成“不要声明文件目标是假的” 为了表达依赖关系,对于人类读者以及Make,我想您有时需要将文件目标作为虚假目标的先决条件。 那么,这些应该是订单目标吗? 据我所知,在这种情况下,order only和not的唯一区别在于它们是否出现在$^或$|中,因此这可能取决于您在该问题上想要的行为,分别是您想要表达的依赖类型 我说的对吗?(如果没有一个或另一个明确的理由,)是否有任何理由选择一个而不是另一个(仅订单或不订单) 我猜你有
。虚假:myprog
是不好的,应该避免。原因是:(1)无条件触发异常的myprog
重建;(2) 它可能会让人误以为myprog
不是一个文件
如果您需要在执行make-B myprog
后强制重新生成myprog
。如果每次运行make时确实需要重新生成,则可以执行以下操作:
myprog: $(OBJECTS) FORCE
...
FORCE:;
或者类似的
据我所知,在这种情况下,order only和not的唯一区别在于它们是否出现在$^或中$|
只有订单的先决条件很少用于GNU扩展。没有必要把它们放进去只是为了表明左侧的“假东西”无论如何都会被重建。因此,没有人编写过all:|myprog
,尽管它与all:myprog
一样有效
我猜你有时需要文件目标作为虚假目标的先决条件
事实上,大多数时候。考虑“标准”的东西:
但是“不要声明文件目标是假的/没有文件目标应该是.PHONY的先决条件”是完全不同的事情。这意味着。虚假:myprog
是不好的,应该避免。原因是:(1)无条件触发异常的myprog
重建;(2) 它可能会让人误以为myprog
不是一个文件
如果您需要在执行make-B myprog
后强制重新生成myprog
。如果每次运行make时确实需要重新生成,则可以执行以下操作:
myprog: $(OBJECTS) FORCE
...
FORCE:;
或者类似的
据我所知,在这种情况下,order only和not的唯一区别在于它们是否出现在$^或中$|
只有订单的先决条件很少用于GNU扩展。没有必要把它们放进去只是为了表明左侧的“假东西”无论如何都会被重建。所以没有人曾经写过<代码>所有的:MyPROG,虽然它和“代码”一样好:MyPROG < /P>谢谢。既然你提到了力,我明白为什么人们会考虑声明文件目标伪。谢谢,现在你提到了力,我明白为什么人们会考虑声明文件目标假的。