Makefile:为一个构建步骤设置env var

haa*_*ael 0 makefile environment-variables

我正在使用GNU make和Makefiles.是否可以为一个构建步骤设置环境变量?

目前我正在做这样的事情:

VAR:=valueA
step1:
    echo $(VAR)
Run Code Online (Sandbox Code Playgroud)

然后,"make step1"将打印"valueA".

是否有可能为一个构建步骤重新定义env var?

VAR:=valueA
step1:
    echo $(VAR)
step2:
    VAR:=valueB
    echo $(VAR)
Run Code Online (Sandbox Code Playgroud)

我想"make step1"打印"valueA",但是"make step1"打印"valueB".

Mad*_*ist 5

首先,那些不是环境变量,它们是变量.理解并记住差异非常重要.

其次,是的,您可以使用特定目标的变量来执行此操作:

VAR := valueA
step1:
        echo $(VAR)

step2: VAR := valueB
step2:
        echo $(VAR)
Run Code Online (Sandbox Code Playgroud)

如果您确实希望该值存在于子进程的环境中,则可以使用make的export关键字:

export VAR := valueA

step1:
        echo $$VAR
Run Code Online (Sandbox Code Playgroud)