我希望通过将它作为参数传递给make
来定义一个C宏,这是从命令行调用的。
背景:当选择某个构建选项时,我希望指令#define ENABLE_OPT 1
包含在我的C源代码中。因此,我希望通过make
命令行完成此操作,而不是修改源代码或 makefile。
如何实现这一目标?我发现make -DENABLE_OPT=1 -f Makefile
抛出错误,'E','N'等是无效的参数。
答案 0 :(得分:4)
您可以使用--eval
,它将字符串评估为makefile语句:
make --eval="FLAGS+= -D ENABLE_OPT=1"
然后将make变量FLAGS用作编译器参数来编译代码。