linux - make工具中的变量声明

标签 linux makefile environment-variables

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

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

CC=gcc
FLAG= -o
TARGET=binary

变量CCFLAGTARGET是否会被添加到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/

相关文章:

.net - 带有值的字典的环境变量列表 - 惯用的 F#

bash - __git_ps1 在使用 Bash su 用户名时找不到

linux - 一个 bash 循环来回显所有可能的 ASCII 字符

c - 执行默认信号处理程序

c - 在 Mac OS X 10.6 上编译 SDL 2.0 时出现 libiconv 问题

c - C 函数(fgets、scanf、fread、fwrite、fopen)的未知行为

regex - 何时转义 shell 中的特殊字符

linux - 测量内核空间中的上下文切换时间

unix - 是否应该在 Makefile 中使用局部变量的较长同义词?

php - 如何从 laravel 上的不同项目获取图像?