有时我们想把一个驱动编译为模块形式,在kernel的config配置为m编译是报

***配置项   creates inconsistent choice state   编译后发现驱动并没有被编译,检查kernel下的.config并没有该配置项

 

就以CONFIG_USB_G_WEBCAM为例,单独将CONFIG_USB_G_WEBCAM配置为m就报 USB_G_WEBCAM  creates inconsistent choice state的警告。

出现这个问题的原因是Kconfig中有一组配置项被choice 和endchoice 包裹,这里面的配置项必须都配置为m或y,不一致就会报这个错。将USB_G_WEBCAM  在内choice 包裹的全选择m即可。

choice 语句将多个类似的配置选项组合在一起,供用户选择一组配置项

通过make menuconfig配置的话就可以发现单独配置USB_G_WEBCAM是不可以的,必须整体配置USB GADGET Drivers为m才可以

kernel config配置模块编译不生效的可能原因

kernel config配置模块编译不生效的可能原因

配置USB Gadget Drivers为m后,才可以配置webcam为m

kernel config配置模块编译不生效的可能原因 

kernel config配置模块编译不生效的可能原因 

配置后体现在.config对比如下

 

kernel config配置模块编译不生效的可能原因 

当然,实际上想单独配置WEBCAM编译为模块,直接修改Makefile CONFIG_USB_G_WEBCAM为m就可以了

 

参考:https://www.rt-thread.org/document/site/programming-manual/kconfig/kconfig/

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-16
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2021-10-04
  • 2021-05-22
  • 2021-05-23
  • 2021-12-09
相关资源
相似解决方案