编译内核时编译器使用哪个头文件路径?

时间:2014-01-17 15:47:38

标签: c linux-kernel header-files

我正在阅读内核的源文件并得到一些问题:

1)编译器在编译内核时使用哪个头文件路径?    在源文件树中,我找到了一个名为“include”的目录。    但是,在'/ usr / include /'中,我还可以找到一些内核头文件。    编译器使用哪一个?

2)有些文件包含这样的标题:'#include',    但我在源树下找不到任何名为'asm'的目录    和'/ usr / include /',但是,它们都有名为'asm_generic'的目录。    当我使用命令'make headers_install'时,生成的文件包含'asm'    编译内核的过程是否首先安装头文件?    并强制编译器处理它们?

P.S。我想将内核的源文件转换为调用者 - 被调用者图进行一些研究。所以我需要一些静态分析工具。我尝试了'call-tree',但结果充满了错误,你能介绍一些更强大的工具吗?

1 个答案:

答案 0 :(得分:1)

使用参数make运行V=1,您将看到传递给gcc和其他程序的确切行。这将告诉您到底发生了什么(从而回答了您的问题)。但是,在回答(2)时,没有make没有安装任何标头,它只是将-I参数的包含路径设置为gcc