如何将宏定义作为参数进行传递?
问题描述:
我希望通过将它作为参数传递给make
来定义C宏,该命令从命令行调用。如何将宏定义作为参数进行传递?
背景:我希望指令#define ENABLE_OPT 1
包含在我的C源代码中,当选择某个构建选项时。因此,我希望通过make
命令行完成此操作,而不是修改源代码或 makefile。
这是如何实现的?我发现make -DENABLE_OPT=1 -f Makefile
引发错误,'E','N'等是无效的参数。
答
您可以使用--eval
,这将评估字符串作为一个makefile声明:
make --eval="FLAGS+= -D ENABLE_OPT=1"
make变量标志时,那么作为一个编译器参数来编译代码。
make CFLAGS =“ - DENABLE_OPT = 1” – Serge
相关问题http://*.com/questions/9052792/how-to-pass-macro-definition-from-make-command-line-arguments-d-to -c-source –
谢谢。我只在makefile中定义了LOCAL_CFLAGS,所以这不会覆盖任何东西。听起来不错! –