【发布时间】:2020-12-22 16:57:21
【问题描述】:
我有一个 Makefile,它有条件地定义编译器,如下所示:
CC?=$(SOMETHING)
这是必要的,因为该文件有时由定义不同编译器的脚本调用。 这曾经可以正常工作,但是在我的新 Linux 安装中,当我运行 make 时,我发现 CC 已经在某个地方定义为“cc”,这是我不想要的。 它不在我的 shell 环境中。就像 make 有它自己的私有环境一样。它来自哪里,我怎样才能摆脱它(不更改 Makefile)?
【问题讨论】:
-
cc是 GNU make 中CC的默认值:gnu.org/software/make/manual/html_node/Implicit-Variables.html(在同一页面上还提到了使用-R摆脱这些默认值的可能性)跨度> -
COMPILER?=$(SOMETHING)然后CC=$(COMPILER) -
嗯,这就解释了。现在的问题是为什么它一开始就起作用了……
标签: c makefile environment-variables