对于linux下的编译系统掌握,知识点还是很多的,很容易一不小心就掉坑里,半天找不到原因,需要各位的细心和谨慎!下面三句话总结的很好,学习了。
Kconfig ---> (每个源码目录下)提供选项
.config ---> (源码顶层目录下)保存选择结果
Makefile---> (每个源码目录下)根据.config中的内容来告知编译系统如何编译
我自己踩坑就是,新建Kconfig文件之后,未在drivers/Kconfig中source自己新建的Kconfig。
在上一层目录的Kconfig中
表示将test文件夹中的Kconfig加入搜寻目录
在上一层目录的Makefile中
二、 Kconfig中的select &depends on 关键字语法
经测试,select与depends on是相反的逻辑关系。
A depends on B
那么只有在B选中才能选A
A select
B
那么只要选中A就会选中B
所以select叫反向依赖。
具体大家可以参考链接的这篇文章:http://www.cnblogs.com/lamblabs/p/8493747.html
小结:Linux 整个的编译系统,使用的是自动依赖编译的特性,该特性体现在每个目录下面都有属于本目录的Makefile & Kconfig.
其中Makefile语法自行就去解析遍历所有目录下的Makefile文件,然而Kconfig文件就是需要在drivers/Kconfig中添加source "yourKconfig path" 呢