Makefile中的单个OR字符是什么

问题描述 投票:0回答:1

简短的问题。在我的工作中,我在Makefile中看到了奇怪的代码

$(DIR)/dir1 $(DIR)/dir2 $(DIR)/dir3: | $(DIR)
    mkdir -p $$(@)

|字符是什么意思?

makefile target
1个回答
1
投票

它将正常的先决条件与仅有序的先决条件分开。在制定目标之前必须只存在订单先决条件,但这就是全部。如果目标的时间戳早于仅有订单的先决条件,则不会重新映射目标。

这里如果$(DIR)不存在,它将在$(DIR)/dir1$(DIR)/dir2$(DIR)/dir3之前生成,但如果它存在并且其时间戳晚于其中一个子目录,则不会重新生成子目录。

© www.soinside.com 2019 - 2024. All rights reserved.