本文介绍了makefile使用目标中定义的变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用在make目标中定义的变量

How can one use the variable defined inside a make target

.PHONY: foo

VAR_GLOBAL=$(shell cat /tmp/global)

foo:
    echo "local" > /tmp/local
    VAR_LOCAL=$(shell cat /tmp/local)
    echo ${VAR_GLOBAL}
    echo ${VAR_LOCAL}

这是执行输出:

$ echo global > /tmp/global
$ make foo
echo "local" > /tmp/local
VAR_LOCAL=local
echo global
global
echo

推荐答案

正如@KelvinSherlock 指出的那样,这是

As @KelvinSherlock pointed out this is a duplicate of another question

这是我的问题的具体解决方案:

here is the specific solution for my question:

.PHONY: foo

VAR_GLOBAL=$(shell cat /tmp/global)

foo:
    echo "local" > /tmp/local
    $(eval VAR_LOCAL := $(shell cat /tmp/local))
    echo ${VAR_GLOBAL}
    echo ${VAR_LOCAL}

这篇关于makefile使用目标中定义的变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-21 20:33