我的makefile中有这样的行

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


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

 make ARG1= OPT1 ARG2 =OPT2


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

最佳答案

只需在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指定假名时,这些假名将覆盖makefile中的默认值。

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

关于command-line - 在makefile中定义默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10699523/

10-10 14:09