makefile宏定义:EXTRA_CFLAGS += -D 与CONFIG_ =y
EXTRA_CFLAGS += -D 与CONFIG_ =y
1.
假如定义一个宏CONFIG_DEBUG
在.c里面定义为:#define CONFIG_DEBUG
在makefile里定义为: CONFIG_DEBUG=y
假如说我们想在makefile里为.c文件进入一个宏定义,就用EXTRA_CFLAGS += DCONFIG_DEBUG( 等价于在.c文件里定义#define CONFIG_DEBUG)
这时CONFIG_DEBUG=y与EXTRA_CFLAGS += DCONFIG_DEBUG的区别应该你已经看出来的,前者是对makefile编译时用的,比如说obj-(CONFIG_DEBUG) += test.o,而后者则是对.c源文件里的 用的,比如说:
#if defined(CONFIG_DEBUG)
...
#else
...
#endif
2.
假如定义一个宏CONFIG_DEBUG = 3
在.c里面定义为:#define CONFIG_DEBUG 3
假如说我们想在makefile里为.c文件进入一个宏定义,就用EXTRA_CFLAGS += -DCONFIG_DEBUG=3
此时两者的定义完全相同。