2016-09-07 39 views
5

我希望通过将它作为参数传递给make来定义C宏,该命令从命令行调用。如何将宏定义作为参数进行传递?

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

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

+2

make CFLAGS =“ - DENABLE_OPT = 1” – Serge

+1

相关问题http://stackoverflow.com/questions/9052792/how-to-pass-macro-definition-from-make-command-line-arguments-d-to -c-source –

+0

谢谢。我只在makefile中定义了LOCAL_CFLAGS,所以这不会覆盖任何东西。听起来不错! –

回答

4

您可以使用--eval,这将评估字符串作为一个makefile声明:

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

make变量标志时,那么作为一个编译器参数来编译代码。

相关问题