我正在使用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
如何访问源代码中的配置符号?
答案 0 :(得分:0)
我找到了一个可能的答案:
将您感兴趣的那些传递给mypackage.mk文件中的$(MAKE)调用,然后将它们传递给包Makefile / Kbuild文件中的编译器。