Command line 从命令行分配makefile变量

Command line 从命令行分配makefile变量,command-line,makefile,Command Line,Makefile,当我想从命令行向make文件传递变量时,我会执行如下操作: make Variable="bla bla" 但是如果我想添加到一个变量呢 我试过这个: make Variable+="bla bla" 它会生成编译器或链接器错误,就好像我没有添加任何内容一样。任何解决方法?只要在Makefile中始终使用VAR+=word语法,而不是VAR=word。然后在命令行上 make VAR="bla bla" 使VAR以“bla-bla”开头,后跟Makefile中分配的剩余单词 这假设您的m

当我想从命令行向make文件传递变量时,我会执行如下操作:

make Variable="bla bla"
但是如果我想添加到一个变量呢

我试过这个:

make Variable+="bla bla"
它会生成编译器或链接器错误,就好像我没有添加任何内容一样。任何解决方法?

只要在
Makefile
中始终使用
VAR+=word
语法,而不是
VAR=word
。然后在命令行上

 make VAR="bla bla"
使
VAR
以“bla-bla”开头,后跟
Makefile
中分配的剩余单词

这假设您的
make
支持
+=
语法

另一种方法是使用两个不同的变量, 比如说,
VAR\u CMDLINE
VAR\u MAKE
,在
Makefile

 VAR_MAKE = whatever default value $(VAR_CMDLINE)
 all:
         echo $(VAR_MAKE)

并将其作为
make VAR\u CMDLINE=“my additions”
运行。这是一款非常便于携带的手机。

lol太棒了。看起来我的make不支持+=但是,它不起作用。如何确定它是否支持?那么我建议您安装GNU make(又名gmake)。它具有您可能需要的所有功能,还有一些。使用
+=
将无法工作。命令行上的赋值优先级高于makefile中的赋值,并将完全覆盖它。有很多方法可以解决这个问题,但它并不令人愉快,而且绝对不便于携带。第二个建议是正确的。谢谢,我“删除”了那部分。