繁体   English   中英

Makefile g ++从命令行使用-D变量进行编译,并使用默认值

[英]Makefile g++ compile with -D variable from command line with default value

我正在尝试设置一个makefile文件,该文件将带有命令行参数,并使用-D标志将其传递给编译器。 另外,设置变量的默认值。

例如

$: Make program FOO=12

这将与-DFOO=12编译

另外,如果在命令行中未提供FOO ,如何设置默认值? 我正在使用c ++,所以我可以做

#ifndef FOO 

#define FOO 12

#endif 

但是我想要一种在makefile中具有默认值的方法。

ifeq ($(FOO),)         # check if FOO is not defined
CFLAGS= -DFOO=999      # if not defined, set a default value
else
CFLAGS= -DFOO=$(FOO)   # or use the value from argument
endif

重新定义的宏是警告,因此,如果您不关心警告,只需将默认值添加到标志中,然后在用户输入内容后追加一个,它将覆盖默认值。

如果您不喜欢警告,请使用-U参数。

-D FOO=1 -U FOO -D FOO=2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM