make工具中的variables声明

让我们有一个简单的make-file

 default: $(CC) $(FLAGS) $(TARGET) $(TARGET).c CC=gcc FLAG= -o TARGET=binary 

那么variablesCCFLAGTARGET将被添加到make工具的环境variables数组中还是这个variables不依赖于make的variables环境?

我不确定你到底在问什么,但是:make维护自己的一组变量,这些变量完全独立于“环境变量”(在环境变量的标准系统定义中)。 当make展开一个变量(比如$(CC) )时,它使用其“make变量”集合中的值,而不是“环境变量”。

当make启动时,它将所有的环境变量导入为“make variables”,这样它们就可以通过正常的make变量扩展来访问。

如果更改也是环境一部分的make变量的值,那么环境中的值也会更改。 另外,当你使用export关键字(在GNU make中),make会把这个变量放在环境中。

当make运行一个程序时,它将环境变量,而不是make变量传递给正在运行的程序。