楼主:
Wardyal (Wardyal)
2025-08-28 11:05:39:为什么 ENABLE_XXX_TOOL ?= 1 前面要加一个问号
在 Makefile 中使用 ?= 是一种 条件赋值(conditional assignment),这是 GNU Make
的语法之一。你在这里使用:
ENABLE_XXX_TOOL ?= 1
如果 ENABLE_XXX_TOOL 尚未被定义,就把它设为 1。
为什么要用 ?= 而不是 =
这样做的好处是:
允许外部覆蓋:如果使用者在命令列或环境变量中已经定义了 ENABLE_SC_UPGRADE_FLASH
,那么这个 ?= 就不会覆蓋它。
更弹性:可以让 Makefile 有默认值,但又不强制使用者一定要用这个值。
===
又透过 AI 上了一课