make menuconfig 中选定项 (CONFIG_XXX) 的作用
来源:互联网 发布:淘宝页面如何装修 编辑:程序博客网 时间:2024/06/05 17:25
在上次开发 drvier 的时候,我参考了一个 kernel 中原有的类似 drvier code, 把 driver 目录下的整个这个目录(暂时取名叫AAA) cp 为 xxx_AAA (前面是公司名称,公司规定的). 然后, 对 xxx_AAA 里面的 Kconfig 和 Makefile 只是简单的修改了一下,集中精力开发和调试我自己新增和修改的 .h .c 文件.
今天,闲来没事,就开始整理我的这个 driver, 然后顺便把 xxx_AAA 里面的用来生成 linux-2.6.28 根目录下的 .config 中的 类似 CONFIG_BBB_CCC 的 名称也修改了一下,然后重新编译 .ko, 结果在测试的过程中,发现跟以前的测试情况不一样,为什么呢?我可是没有修改过 .h .c code哦.
然后,我就开始找原因,首先我先看导致执行不一样的 .h .c code, 虽然我没改动这些, 但是, 程序执行起来也只是执行的 .h .c 文件, 所以先找这个是个入口点. 我发现有一个 .c 文件中可能导致这个问题的一个地方使用了 #ifdef CONFIG_DDD #endif. 然后,我就开始看linux-2.6.28/ 下 .config 文件, 看到以前 AAA 目录下的 Kconfig 生成的 CONFIG_DDD, 而我修了我 xxx_AAA 目录下 里面的用来生成 linux-2.6.28 根目录下的 .config 中的 类似 CONFIG_BBB_CCC 的 名称, 生成了 CONFIG_XXX_DDD,哈哈,貌似原因找到了,同样选定 make menuconfig 中的选项,对应的不通的 Kconfig , 自然就生成了不同的 CONFIG_DDD / CONFIG_XXX_DDD, 而我的 .h .c 文件中没有修改, 还是以前的 #ifdef CONFIG_DDD #endif. 这样自然后就不会把 条件编译内的 code 编译进 .ko, 所以执行的结果会不一样了.找到问题了产生的原因了,自然很容易解决,像这种问题,只需要简单地将 .h .c 文件中 #ifdef CONFIG_DDD 改为 #ifdef CONFIG_XXX_DDD 就 OK 了.
总结一下, kernel 中 make menconfig 中选定的用来生成 .config 中的 CONFIG_XXXX_XXXX 项,主要有以下3个作用:
<1>对它的父目录中的 Makefile 有作用, 使能把新增的目录中的code编译进内核.
如:上例中的对 linux-2.6.28/drivers/Makefile
obj-$(CONFIG_xxx_AAA) += xxx_AAA/
<2>对自己本目录下的 .h .c 文件有作用,确定哪些 .h .c 文件会编译进内核.
<3>对自己本目录下的确定要编译进内核的文件中的部分内容也有作用, 可以有选择的把这些文件中的部分内容编译进内核.
如: 本例.
- make menuconfig 中选定项 (CONFIG_XXX) 的作用
- Build kernel时make oldconfig、menuconfig的作用
- make menuconfig 的错误
- make menuconfig是肿么玩的
- 使用自己的make menuconfig
- make menuconfig的详细配置
- make menuconfig的详细配置
- 如何正确的make menuconfig
- make menuconfig的详细配置
- make menuconfig错误的解决办法
- make menuconfig出现的错误
- make menuconfig时的问题
- make menuconfig的执行详情
- make menuconfig错误的解决办法
- make menuconfig错误的解决办法
- ./configure,make,make menuconfig的区别
- make menuconfig
- make menuconfig
- H264关于RTP协议的实现
- std::map C++
- 下面的一堆文字为了说明一件事情---.NET程序,内存溢出,如何控制.
- 多媒体技术复习汇总 收藏
- 使用FFMPEG SDK解码流数据获得YUV数据及其大小
- make menuconfig 中选定项 (CONFIG_XXX) 的作用
- MS SQL Server 2005 用户权限设置方案
- 在android 中得到系统时间,设置系统时间
- 想成为嵌入式系统工程师应知道的0x10个最基本的问题[转]
- MFC单文档打开文件
- 第四章 字符串和格式化输入/输出
- 项目研讨
- 常对象和常函数的关系 const
- H.264的NALU,RTP封包说明(转自牛人)