gpt4 book ai didi

linux-kernel - 在 Linux 内核的 Kconfig 中添加编译时定义

转载 作者:行者123 更新时间:2023-12-04 00:39:57 24 4
gpt4 key购买 nike

我知道有一个选项可以将编译时宏/定义添加到可在代码中使用的 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 时获得的。 .即,由 menuconfig 或其他工具选择的所有内容都可以在 Makefile 中使用。 Kconfig 变量有一个 配置_ .

您可以选择 生成文件 来源 部分以获得您的定义。如果要选择范围,则可以传递值 CONFIG_MY_DEFINE到编译器。即,包括几乎所有内核头文件都将包括 config.h 和“C”值 CONFIG_MY_DEFINE将设置为用户在范围中选择的任何内容。

kbuild wiki更多,主要引用 kernel's kbuild documentation .

关于linux-kernel - 在 Linux 内核的 Kconfig 中添加编译时定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com