Chinaunix首页 | 论坛 | 博客
  • 博客访问: 515706
  • 博文数量: 77
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 689
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-12 08:40
文章分类

全部博文(77)

文章存档

2018年(1)

2016年(3)

2015年(24)

2014年(49)

我的朋友

分类: 嵌入式

2014-07-22 14:55:14

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
阅读(1046) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~