Chinaunix首页 | 论坛 | 博客
  • 博客访问: 170571
  • 博文数量: 33
  • 博客积分: 2143
  • 博客等级: 大尉
  • 技术积分: 807
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-31 10:24
个人简介

Show me the money

文章分类

全部博文(33)

文章存档

2015年(1)

2013年(1)

2011年(12)

2010年(14)

2009年(2)

2008年(2)

2005年(1)

我的朋友

分类: C/C++

2010-04-16 13:11:35

1. 初级
make tag,vi + tags组合

2. 中级
即使有了tags,但是由于linux需要支持多种平台,导致大量重名的标识符存在,使用tags查找,需要从长列表中进行选择,大大的影响了效率和心情。
为此,我们可以做一些简化,删除大部分平台相关代码,只保留你所关注的那个平台。比如,你想学习的是x86,那么mips,arm,ppc等对于你就是浮云,删之。绝大部分平台相关代码都放在arch和include/asm-xxx目录下。
删除平台相关代码之后,可能会导致编译失败,这个需要自己给Makefile打上补丁。

3. 高级
即使做了大量的简化工作,有时候你还是会被层层嵌套的条件编译所迷惑,不知道那个是正确的答案。庆幸的是,对于这个问题,还有最终解决方案:通过cpp将源码展开,直接查看展开之后的解决。
操作方法:编辑源码所在目录的Makefile,加上这一句:
EXTRA_CFLAGS := -E
重新编译内核。gcc会提示你连接出错,这个没有关系。打开源码所在目录同名的.o文件,这个就是.c被展开之后的结果,它与最终生成的代码是完全对应的。
阅读(836) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~