是否可以通过make定义宏变量?

是否可以通过make定义宏变量?

下面是我的 C 代码:

#包括

主要的() {    
    #ifdef 你好
        printf(“你好”);
    #别的
        printf(“否则”);
    #万一
}

我的 Makefile 是:

all:
        gcc uss_main.c -o out

在这里,我尝试hello通过执行二进制文件进行打印。我只想在执行 make 时out定义宏。我尝试过使用,但它只打印 else 部分,我对 make 还很陌生。请帮助我增强我的 Makefile。提前致谢。 HELLOmake HELLO=11

答案1

您可以使用 GCC 编译器标志定义宏,如下所示:

gcc -DHELLO=1 uss_main.c -o out

如果要将其传递给 make,则需要修改 Makefile。如下所示:

USE_HELLO = $(if $(HELLO),-DHELLO=$(HELLO),)

all:
     gcc $(USE_HELLO) uss_main.c -o out

相关内容