现在的位置: 首页 > 综合 > 正文

【Linux】asm文件夹在那里

2018年06月08日 ⁄ 综合 ⁄ 共 681字 ⁄ 字号 评论关闭

A: 在linux中包含头文件时,有不少类似如下的写法:#include <asm/types.h>,但在linux kernle的include文件夹下并没有这个文件夹,倒是有不少以asm打头的文件夹,如:asm_powerpc、asm_ppc等。
B: #include <asm/types.h>,是由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 <asm/types.h> == /include/asm-x86/types.h
 
 
[转自]: http://blog.sina.com.cn/s/blog_7d638eda01011etf.html

抱歉!评论已关闭.