跳至主要內容

kconfig文件

约 322 字大约 1 分钟

kconfig文件

在调整项目编译结构时,需要使用python的 kconfiglib库来解析kconfig文件,但是调整的一个kconfig文件一直无法被感知到。

一开始怀疑是该kconfig文件没有使用menu的原因,但是从kconfig文档看,应该不存在该问题。

最终定位到是source语法的使用问题。

在项目中, top level的kconfig文件使用orsource包含了中间层的A kconfig文件(为项目调整编写的新的kconfig文件)。 A kconfig文件使用osource包含目标B kconfig文件。

测试发现一直无法生成B kconfig文件对应的cmake变量。最后才看到漏掉了orsourcer

其间也怀疑过osource使用存在问题,使用gpt查询osourceorsource的差异,结果被gpt的错误答案误导了😭

在kconfiglib中有如下描述:

source 用来引入其他的kconfig文件。 osource 表示optional source,表示可选的,如果osource指定的kconfig文件不存在,编译不会报错,将继续下去。 rsource 表示relative source,后面应用的kconfig文件支持相对路径,路径相对于包含rsource语句的kconfig而言。 orsource 则是osourcersource的接合。

osurce rsource orsource等其实是kconfiglib提供的kconfig的扩展。

上次编辑于: