gpt4 book ai didi

makefile - 配方中的立即变量扩展

转载 作者:行者123 更新时间:2023-12-01 23:45:56 26 4
gpt4 key购买 nike

我正在制作一个构建系统,我需要在目标配方中立即进行变量扩展。

我的(简化的)makefile:

VAR=one

all:
@echo one is $(VAR)

VAR=two

当我跑 make输出是:
one is two

输出是预期的(配方中的延迟扩展)但不期望。

使其工作的一种方法是遵循makefile。然而,这使得配方总是被执行,也不希望:
VAR=one

all: $(VAR)
@echo one is $(VAR)

$(VAR):
$(eval VAR=$@)

VAR=two

任何人?

最佳答案

你可以使用这样的东西来获得你想要的东西。它使用 target-specific variable values在解析时捕获变量。

$ cat Makefile
VAR=one

all: tgtone tgttwo

tgtone: VAR:=$(VAR)
tgtone:
@echo $@: VAR is $(VAR)

tgttwo:
@echo $@: VAR is $(VAR)

VAR=two
$ make
tgtone: VAR is one
tgttwo: VAR is two

关于makefile - 配方中的立即变量扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29240933/

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