Makefile:syntax?=

Vin*_*ent 5 makefile

我有一个来自英特尔的makefile,其中有一些"?=".喜欢

COMPILER ?= $(GCC_PATH)g++
Run Code Online (Sandbox Code Playgroud)

EXECUTABLE = run
Run Code Online (Sandbox Code Playgroud)

有什么区别?=和=我何时必须使用第一个而不是第二个?

非常感谢你.

Shi*_*iSi 6

答曰很好的文档:

如果您希望变量仅在尚未设置的情况下设置为值,则可以使用简写运算符'?='而不是'='.