您是否尝试过Make本身的
export指令(假设您使用GNU
Make)?
export PATH := bin:$(PATH)test all: x
此外,您的示例中还有一个错误:
test all: PATH=bin:${PATH} @echo $(PATH) x首先,
echoed
的值是
PATH由Make而不是shell执行的变量的扩展。我猜,如果它输出期望值,那么您已经
PATH在Makefile或调用Make的shell中的较早位置设置了变量。为了防止这种行为,您应该避免美元:
test all: PATH=bin:$$PATH @echo $$PATH x
其次,无论如何这都行不通,因为Make在单独的shell中执行配方的每一行。可以通过在单行中编写配方来更改此设置:
test all: export PATH=bin:$$PATH; echo $$PATH; x



