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

Anu*_*a G 5 c macros makefile gnu-make

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

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

怎么能实现这一目标?我发现make -DENABLE_OPT=1 -f Makefile抛出错误"E","N"等是无效的参数.

250*_*501 4

您可以使用--eval,它将将该字符串计算为 makefile 语句:

make --eval="FLAGS+= -D ENABLE_OPT=1"
Run Code Online (Sandbox Code Playgroud)

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