如何将宏定义作为参数传递给?

时间:2016-09-07 06:09:45

标签: c makefile macros gnu-make

我希望通过将它作为参数传递给make来定义一个C宏,这是从命令行调用的。

背景:当选择某个构建选项时,我希望指令#define ENABLE_OPT 1包含在我的C源代码中。因此,我希望通过make命令行完成此操作,而不是修改源代码 makefile。

如何实现这一目标?我发现make -DENABLE_OPT=1 -f Makefile抛出错误,'E','N'等是无效的参数。

1 个答案:

答案 0 :(得分:4)

您可以使用--eval,它将字符串评估为makefile语句:

make --eval="FLAGS+= -D ENABLE_OPT=1"

然后将make变量FLAGS用作编译器参数来编译代码。