我知道有一个选项可以将编译时宏/定义添加到可以在代码中使用的Kconfig文件中 .
(例如,常量的某些定义,如#define) .
Kconfig值在Makefile定义时传递 . 此外,所有选定的Kconfig值都放在头文件中,并传递给汇编程序和“C”代码 . 因此,您不能直接在Kconfig文件中执行此操作,但可以在Makefile或源中执行此操作 .
config MY_DEFINE bool "Select to get some DEFINE" default y help This is a config define that is sent to both make and defined in a config.h header.
ifeq ($(CONFIG_MY_DEFINE),y) KBUILD_CFLAGS += -DTHE_REAL_DEAL=1 # THE_REAL_DEAL now '1' in C files. endif
#ifdef CONFIG_MY_DEFINE #define THE_REAL_DEAL 1 #endif
因此, Kconfig 部分定义了用户界面信息 . .config 是makefile语法,由menuconfig等输出 . 当您键入 make 时,这是源 . 即,在makefile中可以使用menuconfig或其他工具选择的所有内容 . Kconfig 变量具有 CONFIG_ .
.config
make
您可以选择 Makefile 或 Source 部分来获取您的定义 . 如果要选择范围,则可以将 CONFIG_MY_DEFINE 的值传递给编译器 . 即,几乎所有内核头文件都包含config.h,'C'值 CONFIG_MY_DEFINE 将设置为用户在该范围内选择的任何内容 .
CONFIG_MY_DEFINE
有关更多信息,请参阅kbuild wiki,主要参考kernel's kbuild documentation .
1 回答
Kconfig值在Makefile定义时传递 . 此外,所有选定的Kconfig值都放在头文件中,并传递给汇编程序和“C”代码 . 因此,您不能直接在Kconfig文件中执行此操作,但可以在Makefile或源中执行此操作 .
Kconfig
Makefile
来源
因此, Kconfig 部分定义了用户界面信息 .
.config
是makefile语法,由menuconfig等输出 . 当您键入make
时,这是源 . 即,在makefile中可以使用menuconfig或其他工具选择的所有内容 . Kconfig 变量具有 CONFIG_ .您可以选择 Makefile 或 Source 部分来获取您的定义 . 如果要选择范围,则可以将
CONFIG_MY_DEFINE
的值传递给编译器 . 即,几乎所有内核头文件都包含config.h,'C'值CONFIG_MY_DEFINE
将设置为用户在该范围内选择的任何内容 .有关更多信息,请参阅kbuild wiki,主要参考kernel's kbuild documentation .