覆盖 Makefile 变量

Override Makefile variable

尝试从命令行 make option_one=hi 覆盖 Makefile 中的 option_one 变量。但输出显示变量未被覆盖。我做错了什么?

Makefile 内容:

override option_one = did_override
all: 
    echo $(option_one)

命令输出:

echo did_override
did_override

由...

Trying override option_one variable in Makefile from command line make option_one=hi

...您的意思似乎是希望命令行上指定的值成为所使用的值,而不是 makefile 中指定的值。那就是 标准 行为。您通过为 in-makefile 赋值指定 override 来阻止它,这会导致 makefile 中的赋值覆盖命令行上给出的任何值,这与您想要的完全相反。只是放下那个:

option_one = from_makefile
all: 
    echo $(option_one)

产生:

> make
echo from_makefile
from_makefile

> make option_one=hi
echo hi
hi