23

我的makefile有这样的行

   CFLAGS = -c -g -D OPT1 -D OPT2

我想像这样通过命令行传递这个参数

 make ARG1= OPT1 ARG2 =OPT2    

如果我不通过命令行传递这些参数,我希望 makefile 使用 makefile 中定义的默认值。我怎么做 ?

4

1 回答 1

41

只需在 makefile 中执行以下操作:

OPT1 = MY_OPT_1 # defaults
OPT2 = MY_OPT_2

CFLAGS = -c -g -D $(OPT1) -D $(OPT2)

然后在命令行上:

$ make -e OPT1=SOME_OTHER_OPT1 OPT2=SOME_OTHER_OPT2

当您为OPT1和/或OPT2在命令行上指定 falues 时,这些将覆盖 makefile 中的默认值。

请注意,在大多数情况下,您可能希望-e选项 with强制使用新的,值make重新构建所有内容。OPT1OPT2

于 2012-05-22T09:48:10.123 回答