make工具中的变量声明

时间:2014-01-06 01:05:49

标签: linux makefile environment-variables

我们有一个简单的make-file

default:
    $(CC) $(FLAGS) $(TARGET) $(TARGET).c

CC=gcc
FLAG= -o
TARGET=binary

变量CCFLAGTARGET也会添加到make工具的环境变量数组中,或者此变量不依赖于make变化的环境?

1 个答案:

答案 0 :(得分:0)

我不确定你究竟在这里问什么,但是:make维护自己的变量集,这些变量完全独立于“环境变量”(在环境变量的标准系统定义中)。当make扩展变量(例如$(CC))时,它使用“make variables”集合中的值,而不是“环境变量”。

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

如果更改make变量的值(也是环境的一部分),则环境中的值也会更改。此外,当您使用export关键字(在GNU make中)时,make也会将该变量放入环境中。

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