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) |