.config文件中定义的预处理器宏在c文件中不可见

.config文件中定义的预处理器宏在c文件中不可见,c,makefile,macros,preprocessor,C,Makefile,Macros,Preprocessor,我在.config文件中有预处理器宏,如下所示 CONFIG_IDENTIFIER=y -include .config OBJ += ./src/myfile.o .... myapp: $(OBJS) $(CC) $(LDFLAGS) -o myapp $(OBJS) @$(E) " LD " $@ 然后,Makefile的内容如下所示 CONFIG_IDENTIFIER=y -include .config OBJ += ./src/myfile.o ...

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

CONFIG_IDENTIFIER=y  
-include .config
OBJ += ./src/myfile.o
....
myapp: $(OBJS)
    $(CC) $(LDFLAGS) -o myapp $(OBJS)
    @$(E) "  LD " $@
然后,Makefile的内容如下所示

CONFIG_IDENTIFIER=y  
-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\u IDENTIFIER
不是一个预处理器宏,它是一个make变量,就像
OBJS
一样

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

CONFIG_IDENTIFIER=y  
这定义了Makefile的本地变量。它不定义C预处理器宏

要使其成为C预处理器宏,可以如下调整Makefile:

-include .config
CFLAGS += -DCONFIG_IDENTIFIER=$(CONFIG_IDENTIFIER)
....

如果它是一个宏,则不会为其分配这样的值:
#define CONFIG_IDENTIFIER