Chinaunix首页 | 论坛 | 博客
  • 博客访问: 45188
  • 博文数量: 6
  • 博客积分: 131
  • 博客等级: 入伍新兵
  • 技术积分: 104
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-29 21:22
文章分类
文章存档

2013年(1)

2012年(5)

我的朋友

分类: LINUX

2012-10-19 09:34:51

A: 在linux中包含头文件时,有不少类似如下的写法:#include ,但在linux kernle的include文件夹下并没有这个文件夹,倒是有不少以asm打头的文件夹,如:asm_powerpc、asm_ppc等。
B: #include ,是由Makefile根据.config 内核配置自动生成的,而用make menuconfig 可以生成.config.  用make mrproper 可以清除.config和自动生成的源文件。

A: 这个asm是这些asm打头的文件夹的统称吗?

B:不是,是不同的硬件平台的汇编文件,汇编语言是AT&T 汇编。

asm是一个符号连接
只有在你的主makefile的ARCH 变量赋值,并且编译过一遍内核之后才会指向对应的体系结构
这个文件夹下的东西是体系结构相关的
如/include/asm-arm/
/include/asm-x86/
 
A: 也就是说,源代码中没有asm这个文件夹。在编译内核的时候会根据ARCH的配置,使用具体的某个架构的文件,如:asm_arm或asm_x86中的文件,临时的生成这个文件夹及其下的文件。
 
B: 不用临时生成,那些文件夹如/include/asm-x86/早就存在
只是make的时候 /include/asm 指向 /include/asm-x86/

这样 #include == /include/asm-x86/types.h
 
 
[转自]: http://blog.sina.com.cn/s/blog_7d638eda01011etf.html
阅读(4806) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~