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

标签 c makefile macros preprocessor

我在 .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/

相关文章:

linux - 在远程Linux服务器上运行本地GCC

c - 如何修改configure.ac以在最终Makefile中添加库目标?

C 宏使用文字与变量产生不同的结果

scala - 是 <- 只能由编译器访问

c - 在另一个字符串的中间添加新字符串 - c

c++ - 如何编译flex代码以获得动态库?

c - 从哪里开始修改开源软件?

c - uint16_t 与 printf 的值差异

c++ - 编写 Makefile.am 来调用 googletest 单元测试

emacs - 不知道lisp宏是怎么构造它的扩展的?具体步骤是什么?