让我们有一个简单的make-file
:
default:
$(CC) $(FLAGS) $(TARGET) $(TARGET).c
CC=gcc
FLAG= -o
TARGET=binary
变量CC
、FLAG
和TARGET
是否会被添加到make
工具的环境变量数组中,或者这些变量不依赖于make
的变量环境?
最佳答案
我不确定您在这里到底要问什么,但是:make维护自己的一组变量,这些变量完全独立于“环境变量”(在环境变量的标准系统定义中)。当 make 扩展变量(例如 $(CC)
)时,它使用其“make 变量”集中的值,而不是“环境变量”。
当 make 启动时,它会将所有环境变量导入为“make 变量”,以便可以通过正常的 make 变量扩展来访问它们。
如果更改也是环境一部分的 make 变量的值,那么环境中的值也会更改。此外,当您使用 export
关键字(在 GNU make 中)时,make 也会将该变量放入环境中。
当 make 运行程序时,它会将环境变量(而不是 make 变量)传递给正在运行的程序。
关于linux - make工具中的变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20941380/