我在 .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 文件中获取预处理器宏定义。有什么帮助吗?
最佳答案
I have preprocessor macro in .config file as below
CONFIG_IDENTIFIER=y
这定义了 Makefile 的局部变量。它不定义 C 预处理器宏。
要使其成为 C 预处理器宏,您可以像这样调整 Makefile:
-include .config
CFLAGS += -DCONFIG_IDENTIFIER=$(CONFIG_IDENTIFIER)
....
关于c - .config 文件中定义的预处理器宏在 c 文件中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46620485/