我在.config文件中有预处理器宏,如下所示

CONFIG_IDENTIFIER=y

那么,Makefile的内容如下
-include .config
OBJ += ./src/myfile.o
....
myapp: $(OBJS)
    $(CC) $(LDFLAGS) -o myapp $(OBJS)
    @$(E) "  LD " $@

然后在./src/myfile.c文件中,我尝试使用perprocessor宏,如下所示,
#ifdef CONFIG_IDENTIFIER
.... /* Compiler does not execute in here */
....
#endif

但无法在./src/myfile.c文件中获取预处理器宏定义。有什么帮助吗?

最佳答案

我在.config文件中有预处理器宏,如下所示

CONFIG_IDENTIFIER=y

这将定义Makefile的本地变量。它不定义C预处理器宏。
要使其成为C预处理器宏,可以如下调整Makefile:
-include .config
CFLAGS += -DCONFIG_IDENTIFIER=$(CONFIG_IDENTIFIER)
....

09-11 17:33