0

鉴于此 Kconfig:

config MY_STR
    string "A string"

对于默认的空字符串,该指令#if defined(CONFIG_MY_STR)将评估为 true。

如何在编译时检查CONFIG_MY_STR是否为空字符串?像下面这样使用第二个布尔值(例如CONFIG_USE_MY_STR)是更好的做法吗?

config MY_STR
    string "A string"
    depends on USE_MY_STR

config USE_MY_STR
    bool "Enable MY_STR"
4

1 回答 1

1

由于字符串符号默认为空字符串,因此BUILD_ASSERT()可用于执行编译时检查:

BUILD_ASSERT(1 != sizeof(CONFIG_SOMEPROPERTY), "SOMEPROPERTY required");

并在构建过程中传递它

west build -- -DCONFIG_SOMEPROPERTY=\"1.0\" [other arguments]
于 2020-12-09T10:51:16.943 回答