我正在使用 buildroot 创建一个 Linux 内核模块来执行交叉编译。我创建了一个 Config.in 文件来创建一些可选位,如下所示:
config BR2_PACKAGE_MYPACKAGE_OPTION1
bool "Option 1"
在我的源代码中,我将拥有:
#ifdef CONFIG_BR2_PACKAGE_MYPACKAGE_OPTION1
#error Testing if symbol defined
#endif
这不起作用,从 menuconfig 检查选项时,编译时未定义符号。该符号确实出现在顶级 .config 文件中。
我猜想 mypackage.mk 将有权访问该符号,并且确实如此。我尝试将这些添加到 .mk 文件中,但尽管 TARGET_CFLAGS 和 EXTRA_CFLAGS 都被语句更改(通过 @echo 命令确认),但它们不会传递给编译器。
ifeq ($(BR2_PACKAGE_MYPACKAGE_OPTION1),y)
TARGET_CFLAGS += -DCONFIG_BR2_PACKAGE_MYPACKAGE_OPTION1
endif
ifeq ($(BR2_PACKAGE_MYPACKAGE_OPTION1),y)
EXTRA_CFLAGS += -DCONFIG_BR2_PACKAGE_MYPACKAGE_OPTION1
endif
如何访问源代码中的配置符号?