gpt4 book ai didi

linux - Makefile DEFAULT_GOAL 变量

转载 作者:IT王子 更新时间:2023-10-29 00:34:57 25 4
gpt4 key购买 nike

这是一个使用 DEFAULT_GOAL 变量的例子:

ifeq ($(.DEFAULT_GOAL),)
$(warning no default goal is set)
endif

.PHONY: foo
foo: ; @echo $@

$(warning default goal is $(.DEFAULT_GOAL))

# Reset the default goal.
.DEFAULT_GOAL :=

.PHONY: bar
bar: ; @echo $@

$(warning default goal is $(.DEFAULT_GOAL))

# Set our own.
.DEFAULT_GOAL := foo


The output is:

no default goal is set
default goal is foo
default goal is bar
foo

我坚持理解 echo 和 $(warning ) 函数的流程是什么,即当 $(warning ) 函数被调用时 echo $ @ 输出被抑制,并显示 echo $@ 的最后输出。因为有 2 个 echo 语句3 个 $(warning ) 函数调用 但 echo 最后一个 foo 只打印了一个目标 id。为什么不打印其他值,为什么最后一个值打印为 foo 为什么不打印 bar?

最佳答案

警告和赋值发生在 make 读取 Makefile 时。只有这样它才开始决定要执行哪些规则。其他 echo 语句永远不会执行,因为它只会在该点创建默认目标,即 foo

关于linux - Makefile DEFAULT_GOAL 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28299370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com