我们有一个简单的make-file
:
default:
$(CC) $(FLAGS) $(TARGET) $(TARGET).c
CC=gcc
FLAG= -o
TARGET=binary
变量CC
,FLAG
和TARGET
也会添加到make
工具的环境变量数组中,或者此变量不依赖于make
变化的环境?
答案 0 :(得分:0)
我不确定你究竟在这里问什么,但是:make维护自己的变量集,这些变量完全独立于“环境变量”(在环境变量的标准系统定义中)。当make扩展变量(例如$(CC)
)时,它使用“make variables”集合中的值,而不是“环境变量”。
当make启动时,它会将所有环境变量导入为“make variables”,这样就可以通过普通的make变量扩展来访问它们。
如果更改make变量的值(也是环境的一部分),则环境中的值也会更改。此外,当您使用export
关键字(在GNU make中)时,make也会将该变量放入环境中。
当make运行程序时,它会将环境变量而不是make变量传递给它正在运行的程序。