预处理器宏是不是在C文件可见
问题描述:
我有预处理器宏在config文件如下预处理器宏是不是在C文件可见
CONFIG_IDENTIFIER=y
然后,生成文件内容如下
-include .config
OBJ += ./src/myfile.o
....
myapp: $(OBJS)
$(CC) $(LDFLAGS) -o myapp $(OBJS)
@$(E) " LD " [email protected]
然后,在./src/myfile.c文件,我尝试使用下面的处理器宏,
#ifdef CONFIG_IDENTIFIER
.... /* Compiler does not execute in here */
....
#endif
但是无法获得预处理器宏定义在./src/myfile.c文件中。对此有何帮助?
答
我在config文件预处理宏如下
CONFIG_IDENTIFIER=y
这定义了一个局部变量生成文件。它确定了而不是定义了C预处理宏。
使之成为C-预处理宏,你可以调整的Makefile这样的:
-include .config
CFLAGS += -DCONFIG_IDENTIFIER=$(CONFIG_IDENTIFIER)
....
答
CONFIG_IDENTIFIER
不是预处理器宏,它是一个make变量,就像OBJS
一样。
如果它是一个宏则没有分配这样一个值:'#定义CONFIG_IDENTIFIER'。 – Raindrop7