C 如何将宏定义作为参数传递给make?
我希望通过将C宏作为参数传递给从命令行调用的C 如何将宏定义作为参数传递给make?,c,makefile,macros,gnu-make,C,Makefile,Macros,Gnu Make,我希望通过将C宏作为参数传递给从命令行调用的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
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”相关问题谢谢。我在makefile中只定义了本地\u CFLAGS,所以这不会覆盖任何内容。听起来不错!即使之前定义了CFLAGS,也可以使用
CFLAGS+=
将宏添加到CFLAGS