Powershell GNU Make忽略windows上的环境变量

Powershell GNU Make忽略windows上的环境变量,powershell,makefile,gnu-make,Powershell,Makefile,Gnu Make,所以,在powershell中,我输入 $ Set-Variable FOO 然后,在我的makefile中 .PHONY: show-foo show-foo: @echo ${FOO} 它输出一个空行 我尝试过使用系统变量,比如$profile,但似乎没有一个环境变量被传递到makefile中 有人能告诉我我做错了什么吗 在windows 10上,使用make 4.2.1Set Variable设置shell变量,但不会像sh中的var=val那样修改环境,而不会导出。改用 $e

所以,在powershell中,我输入

$ Set-Variable FOO
然后,在我的makefile中

.PHONY: show-foo
show-foo:
    @echo ${FOO}
它输出一个空行

我尝试过使用系统变量,比如$profile,但似乎没有一个环境变量被传递到makefile中

有人能告诉我我做错了什么吗

在windows 10上,使用make 4.2.1

Set Variable设置shell变量,但不会像sh中的var=val那样修改环境,而不会导出。改用

$env:FOO="VALUE"
操作环境。

Set Variable设置一个shell变量,但不会像sh中的var=val那样修改环境,而不会导出。改用

$env:FOO="VALUE"

操纵环境。

您使用哪种品牌?MSYS2,Mingw,Cygwin?@FlorianWeimer GNU Make不是powershell专家,但我认为Set变量可能不会改变环境,只是设置一个shell变量?试试$env:FOO=VALUE?@OndrejK.Hot diggity,你说得对!如果你想加上这个作为答案,我接受它的答案,让我们结束这个循环。很高兴它起到了作用,尤其是因为我真的不是Windows用户你用哪种牌子的?MSYS2,Mingw,Cygwin?@FlorianWeimer GNU Make不是powershell专家,但我认为Set变量可能不会改变环境,只是设置一个shell变量?试试$env:FOO=VALUE?@OndrejK.Hot diggity,你说得对!如果你想加上这个作为答案,我接受它的答案,让我们结束这个循环。很高兴它起到了作用,尤其是因为我真的不是Windows用户或者,设置Item-Path Env:\FOO-Value。PowerShell非常喜欢它的驱动器系统。或者,设置Item-Path Env:\FOO-Value。PowerShell非常喜欢它的驱动器系统。